|Publication number||USRE40092 E1|
|Application number||US 10/918,293|
|Publication date||Feb 19, 2008|
|Filing date||Aug 12, 2004|
|Priority date||May 11, 1998|
|Also published as||US6434696, USRE42727|
|Publication number||10918293, 918293, US RE40092 E1, US RE40092E1, US-E1-RE40092, USRE40092 E1, USRE40092E1|
|Original Assignee||Protimus Technologies Llc|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (25), Non-Patent Citations (1), Referenced by (58), Classifications (9), Legal Events (4)|
|External Links: USPTO, USPTO Assignment, Espacenet|
1. Field of the Invention
The present invention relates to a method of and apparatus for booting a personal computer system and, more particularly, for quickly booting a computer system, in which a boot configuration information is created and saved in a disk for future boot, and the saved boot configuration information is reused upon the request of the subsequent boot.
2. Description of the Related Art
The boot process of an IBM PC in which MS-DOS operating system is already installed is as follows. When a user turns the personal computer power switch on or presses a reset button, a power-on self test (POST) is performed by ROM BIOS codes to diagnose each component of the personal computer. Next, a file called MSDOS.SYS is loaded and executed, and another file called IO.SYS is then loaded and executed to perform certain preliminary functions related to management of such peripheral devices as keyboard, disk, and display. And then, a command preprocessor or COMMAND.COM is loaded into a memory that receives, interprets and executes user commands. A file called CONFIG.SYS that specifies devices possibly connected to the personal computer is loaded and ASCII statements contained therein are executed to load device drivers and initialize them. Finally, another ASCII file called AUTOEXEC.BAT is loaded and then programs that are listed therein are executed, thereby preparing the personal computer for use.
There two kinds of boots; “cold boots” and “warm boots”, which rely on the state of the computer system when the boot operation is requested. A “cold boot” is performed when power is applied to the computer or a reset button is pressed. When an operating system is loaded in memory already and the computer system is powered on already, a user may request a “warm boot” by entering a predefined sequence of key strokes, e.g., <Ctrl>+<Alt>+<Del>. The BIOS codes include a plurality of computer routines for controlling devices such as a system clock, video output display 6, disk controller 5, and keyboard and thus provide a low-level interface to these devices. The BIOS is generally stored in a Flash ROM.
Shortly after power on or a reset button is pressed, the CPU begins executing the ROM BIOS codes. The BIOS codes for POST are, first, executed to diagnose and initialize devices attached to the computer system and obtain the status of the devices.
When a “warm boot” is requested or a reset button is pressed, it is desirable that the time required for the boot process is reduced to force the computer into a ready state as quickly as possible. The boot process is usually called “quick boot”, which is achieved by simplifying some device diagnosis processes or loading the device status information that was obtained at the preceding boot time from a storage medium such as disk. Because the quick boot means a boot process in which some POST operations, e.g., memory test are skipped, the quick boot is generally referred to as “quick post”.
Once the boot operation is completed, a basic boot information is saved to a disk for future quick POST process (S13). After that, if a user requests a “quick boot” to reboot the personal computer (S14), the above-mentioned quick POST process is performed to reduce the time needed to complete a normal POST process. As another method, the POST process execution is skipped by using a basic boot information that was created and saved in a disk immediately after the preceding POST process is completed.
However, the conventional quick boot relies on the POST process, e.g., the omission of memory test. In other words, in the conventional quick booting method, the same operations as those of normal boot process are still performed after the quick POST process. Therefore, in case where there are a lot of ASCII statements in CONFIG.SYS and AUTOEXEC.BAT, the quick boot of the conventional art is not effective to reduction of the boot time.
According to the conventional booting method, in Windows95 installed personal computer system, working environment or all information stored in memory are saved to a disk for the subsequent quick boot. If memory size is larger than 32 MB, the amount of data to be saved to the disk becomes too large. As a result, the subsequent booting by reloading the saved data into the memory may be even slower than a normal boot.
It is therefore a primary object of the present invention to provide a method and apparatus that significantly reduces the time required for boot process after a POST operation by using a boot configuration information on memory and the attached devices that were created and saved in a disk in the preceding boot process, and thereby skipping execution of statements in an initial device configuration file and an automatic batch file.
To achieve the object, the present invention provides a method for quickly booting a personal computer system, comprising the steps of performing a POST operation when the system is powered on or a reset button is pressed; checking if a boot configuration information that was created in the preceding boot process exists in a disk; saving the boot configuration information to the disk after execution of a POST operation on the basis of the checking result; and loading a graphic user interface (GUI) program.
The method for quickly booting a computer system according to the present invention is also characterized in that it comprises the steps of performing a POST operation when the system is powered on or a reset button is pressed; restoring a boot configuration information by using the boot configuration information that has been saved in a disk; and loading a GUI program.
According to the quick booting method of the present invention, after ASCII statements listed in an initial device configuration file and an automatic batch file are executed, a boot configuration information that is resident in a memory, i.e., the status of devices and the contents of memory are saved into a disk. After that, when a reboot is requested, a computer system can be booted quickly by using the stored boot configuration information, without execution of the initial device configuration file and the automatic batch run file.
The accompanying drawings, which are included to provide a further understanding of the invention, illustrate the preferred embodiment of this invention, and together with the description, serve to explain the principles of the present invention.
In the drawings:
The preferred embodiments of the present invention will be described below in detail referring to the accompanying drawings.
The method for saving the boot configuration information to a disk will be described now in detail referring to FIG. 4. When power is turned on or a reset button is pressed (S31), a cold boot or warm boot is requested. The POST operation is, first, executed (S32) and then an INT 19h service routine is called to load an operating system (S53). By calling the INT 19h, control is passed to a bootstrap loader which loads the operating system into a memory to prepare the personal computer for use.
Next, CONFIG.SYS is loaded into the memory and statements therein are executed CONFIG.SYS includes ASCII statements describing the size of disk buffer, the number of files that can be opened simultaneously, the names of device drivers needed to control devices attached to the computer system, and so on. After executing CONFIG.SYS, another ASCII file called AUTOEXEC.BAT is loaded into the memory. The file-names of programs that a user wants to run automatically at the boot time are listed therein, and the programs are executed (S34).
Next, a RAM-resident program is activated to replace an original INT 2Fh service routine in the ROM BIOS codes. To do this, the interrupt Vector for INT 2Fh is substituted for the address of the RAM-resident program (S35). Next, WIN.COM is executed to load Windows95 into the memory (S36). The INT 2Fh service routine is called by using software system management interrupt (software SMI) during the execution of WIN.COM. At the interrupt point, the contents of a particular register is sent to the RAM-resident program and then performs a prescribed function associated with the register contents (S37).
If the register contents is a predetermined value, e.g., 1605H, the RAM-resident program checks if there is a file that contains the boot configuration information in a disk (S38) and saves the current boot configuration information to the disk, if not (S39). WIN.COM is then executed to load a GUI program of Windows95 into the memory (S41), providing a user with Windows95 interface (S42). It should be noted that the boot configuration information is saved in the disk immediately before Windows95 loads device drivers into a memory, i.e., an extended memory is used to load GUI program of Windows95.
The operation of saving the boot configuration information to a disk (the step S39 of
The next time the computer system is powered on or reset, the saved boot configuration information is used to boot the computer system. The method for restoring the boot configuration information will be described now in detail referring to FIG. 5.
Once power is turned on or reset button is pressed (S51), a quick POST operation including skip of memory test is executed (S52), and then it is checked whether or not there is any boot configuration information that has been saved to a disk in the preceding boot process (S52-1). If it is determined that a boot configuration information exists, the operation for its restoration is performed (S53).
The process for restoring the boot configuration information is described in detail referring to a flowchart of FIG. 7. First, it is checked whether or not a current boot configuration has been changed based on the restored boot configuration information. If there is any change in the boot configuration, commands that are usually executed at the boot time, for example, commands for initial setup device configuration are executed and then a newly formed boot configuration information is saved to the disk for future boot. Specifically, when a computer system is resumed, it is checked if the boot configuration information will be restored (S81). If it is determined that the boot configuration information is restored, the contents of memory segments, addresses of which was saved before in the disk, are copied to the memory at their own addresses (S82). Other memory segments than the restored memory segments, become filled with ‘0’ (S83). The reason why the contents of those segments are not restored is that they are set to all ‘0’s during the BIOS POST operation.
Once restoration of the contents of those memory segments is completed, it is checked if CONFIG.SYS and AUTOEXEC.BAT was changed (S54). If it is determined that either CONFIG.SYS and AUTOEXEC.BAT was changed, the bootstrap loader, the INT 19h service routine is called (S55), and then the both ASCII files are loaded into a memory to execute statements therein (S56). Next, the RAM-resident program is activated to replace the original INT 2Fh service routine (S57).
Next, WIN.COM is executed to load Windows95 into the memory (S58). The INT 2Fh service routine is called through the software SMI during the execution of WIN.COM (S59) and thus the RAM-resident program is executed. The RAM-resident program, first, checks the contents of a particular register and then, if it is matched with a predetermined value, saves the current boot configuration information that is resident in the memory to the disk (S61). The method for saving the contents of memory where the boot configuration information is resided is the same as that shown in FIG. 6. Next, control is passed to WIN.COM again and thus Windows95 GUI is set up (S62), thereby preparing the computer system for use (S63).
The reason why the boot configuration information should be restored before Windows95 loads Windows95-dedicated device drivers is to reduce the amount of data on the disk that must be copied to a memory at the boot time. Because the extended memory has been not used yet at that time, even if the size of total memory is 512 MB, memory of about 7 MB only is saved to and restored from the disk, according to the methods shown in
Though the description hereinbefore may refer to terms commonly used in describing particular computer systems and software, such as IBM personal computer and Windows95 operation system, the concepts equally apply to other systems and software.
The foregoing is provided only for the purpose of illustration and explanation of the preferred embodiments of the present invention, so changes, variations and modifications may be made without departing from the spirit and scope of the invention.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US4885770 *||Sep 4, 1987||Dec 5, 1989||Digital Equipment Corporation||Boot system for distributed digital data processing system|
|US4959774 *||Jun 30, 1989||Sep 25, 1990||Ampex Corporation||Shadow memory system for storing variable backup blocks in consecutive time periods|
|US5155833 *||May 11, 1987||Oct 13, 1992||At&T Bell Laboratories||Multi-purpose cache memory selectively addressable either as a boot memory or as a cache memory|
|US5269019 *||Apr 8, 1991||Dec 7, 1993||Storage Technology Corporation||Non-volatile memory storage and bilevel index structure for fast retrieval of modified records of a disk track|
|US5269022 *||Mar 22, 1991||Dec 7, 1993||Kabushiki Kaisha Toshiba||Method and apparatus for booting a computer system by restoring the main memory from a backup memory|
|US5276890||Mar 9, 1993||Jan 4, 1994||Kabushiki Kaisha Toshiba||Resume control system and method for executing resume processing while checking operation mode of CPU|
|US5392415||Dec 15, 1992||Feb 21, 1995||International Business Machines Corporation||System for grouping non-contiguous pages belonging to a storage object for page out|
|US5513359||Jul 23, 1993||Apr 30, 1996||International Business Machines Corporation||Desktop computer having a single-switch suspend/resume function|
|US5564054||Aug 25, 1994||Oct 8, 1996||International Business Machines Corporation||Fail-safe computer boot apparatus and method|
|US5710930 *||Aug 4, 1995||Jan 20, 1998||Intel Corporation||Apparatus and a method for allowing an operating system of a computer system to persist across a power off and on cycle|
|US5745669||Jun 21, 1996||Apr 28, 1998||Ast Research, Inc.||System and method for recovering PC configurations|
|US5784628||Mar 12, 1996||Jul 21, 1998||Microsoft Corporation||Method and system for controlling power consumption in a computer system|
|US5870613||Apr 14, 1995||Feb 9, 1999||Smith Corona/Acer||Power mangement system for a computer|
|US5925129||Jun 7, 1995||Jul 20, 1999||International Business Machines Corporation||Desktop computer system having compressed suspend to hardfile|
|US5978913 *||Mar 5, 1998||Nov 2, 1999||Compaq Computer Corporation||Computer with periodic full power-on self test|
|US6073232 *||Feb 25, 1997||Jun 6, 2000||International Business Machines Corporation||Method for minimizing a computer's initial program load time after a system reset or a power-on using non-volatile storage|
|US6098158||Dec 18, 1997||Aug 1, 2000||International Business Machines Corporation||Software-enabled fast boot|
|US6173417 *||Apr 30, 1998||Jan 9, 2001||Intel Corporation||Initializing and restarting operating systems|
|US6209088||Sep 21, 1998||Mar 27, 2001||Microsoft Corporation||Computer hibernation implemented by a computer operating system|
|US6279109||Jan 7, 1999||Aug 21, 2001||Dell U.S.A., L.P.||Computing system and operating method for booting and running a graphical user interface (GUI) with r/w hard drive partition unavailable|
|US6374353||Mar 3, 1999||Apr 16, 2002||Mitsubishi Denki Kabushiki Kaisha||Information processing apparatus method of booting information processing apparatus at a high speed|
|US6401198 *||Mar 9, 1999||Jun 4, 2002||Texas Instruments Incorporated||Storing system-level mass storage configuration data in non-volatile memory on each mass storage device to allow for reboot/power-on reconfiguration of all installed mass storage devices to the same configuration as last use|
|US6529966||Aug 24, 1995||Mar 4, 2003||Microsoft Corporation||Booting a computer system using a last known good set of configuration data|
|US6567774 *||Jan 30, 1998||May 20, 2003||Compaq Computer Corporation||Method and system for configuring and updating networked client stations using a virtual disk and a snapshot disk|
|US6609182||Jan 20, 2000||Aug 19, 2003||Microsoft Corporation||Smart hibernation on an operating system with page translation|
|1||*||"Fast DOS Soft Boot" IBM Technical Disclosure Bulletin, Feb. 1, 1994, vol. 37, Issue 2B, pp. 185-186.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7555677 *||Apr 22, 2005||Jun 30, 2009||Sun Microsystems, Inc.||System and method for diagnostic test innovation|
|US7962734 *||Mar 15, 2007||Jun 14, 2011||Hewlett-Packard Development Company, L.P.||Method of restarting a computer platform|
|US8010776 *||Dec 17, 2007||Aug 30, 2011||Spansion Llc||Adaptive system boot accelerator for computing systems|
|US8054879||Jan 8, 2010||Nov 8, 2011||Realtime Data Llc||Bandwidth sensitive data compression and decompression|
|US8073047||May 19, 2008||Dec 6, 2011||Realtime Data, Llc||Bandwidth sensitive data compression and decompression|
|US8090936||Oct 19, 2006||Jan 3, 2012||Realtime Data, Llc||Systems and methods for accelerated loading of operating systems and application programs|
|US8112619||Oct 19, 2006||Feb 7, 2012||Realtime Data Llc||Systems and methods for accelerated loading of operating systems and application programs|
|US8275897||Apr 8, 2006||Sep 25, 2012||Realtime Data, Llc||System and methods for accelerated data storage and retrieval|
|US8443183 *||May 25, 2010||May 14, 2013||Spashtop Inc.||Pre-boot loader for reducing system boot time|
|US8502707||Feb 9, 2010||Aug 6, 2013||Realtime Data, Llc||Data compression systems and methods|
|US8504710||Oct 26, 2006||Aug 6, 2013||Realtime Data Llc||System and methods for accelerated data storage and retrieval|
|US8553759||Jun 6, 2011||Oct 8, 2013||Realtime Data, Llc||Bandwidth sensitive data compression and decompression|
|US8643513||Jun 6, 2011||Feb 4, 2014||Realtime Data Llc||Data compression systems and methods|
|US8667264 *||Apr 22, 2011||Mar 4, 2014||Shuttle Inc.||Expedited computer boot system and method|
|US8692695||Aug 16, 2010||Apr 8, 2014||Realtime Data, Llc||Methods for encoding and decoding data|
|US8707018 *||Jun 28, 2011||Apr 22, 2014||Emc Corporation||Managing initialization of file systems|
|US8717203||Sep 24, 2013||May 6, 2014||Realtime Data, Llc||Data compression systems and methods|
|US8717204||Sep 24, 2013||May 6, 2014||Realtime Data Llc||Methods for encoding and decoding data|
|US8719438||May 5, 2011||May 6, 2014||Realtime Data Llc||System and methods for accelerated data storage and retrieval|
|US8723701||Sep 24, 2013||May 13, 2014||Realtime Data Llc||Methods for encoding and decoding data|
|US8742958||Sep 24, 2013||Jun 3, 2014||Realtime Data Llc||Methods for encoding and decoding data|
|US8756332||Oct 26, 2006||Jun 17, 2014||Realtime Data Llc||System and methods for accelerated data storage and retrieval|
|US8788801 *||Aug 18, 2009||Jul 22, 2014||Ca, Inc.||Backup and recovery of systems by restoring a backup boot configuration data (BCD) with installation files from an operating system install disk|
|US8867610||Dec 19, 2013||Oct 21, 2014||Realtime Data Llc||System and methods for video and audio data distribution|
|US8880862||May 27, 2011||Nov 4, 2014||Realtime Data, Llc||Systems and methods for accelerated loading of operating systems and application programs|
|US8929442||Dec 19, 2013||Jan 6, 2015||Realtime Data, Llc||System and methods for video and audio data distribution|
|US8933825||Apr 11, 2014||Jan 13, 2015||Realtime Data Llc||Data compression systems and methods|
|US8934535||Sep 20, 2013||Jan 13, 2015||Realtime Data Llc||Systems and methods for video and audio data storage and distribution|
|US9054728||Sep 24, 2014||Jun 9, 2015||Realtime Data, Llc||Data compression systems and methods|
|US9116908||Jun 12, 2014||Aug 25, 2015||Realtime Data Llc||System and methods for accelerated data storage and retrieval|
|US9141992||Feb 23, 2012||Sep 22, 2015||Realtime Data Llc||Data feed acceleration|
|US9143546||Oct 3, 2001||Sep 22, 2015||Realtime Data Llc||System and method for data feed acceleration and encryption|
|US9236882||Jun 1, 2015||Jan 12, 2016||Realtime Data, Llc||Data compression systems and methods|
|US9298472 *||Jan 27, 2005||Mar 29, 2016||Nec Corporation||High-speed restart method, information processing device, and program|
|US9348604 *||Apr 24, 2013||May 24, 2016||Dell Products L.P.||System and method for inventory collection optimization by selective binding of the pre-boot drivers|
|US9667751||Sep 14, 2015||May 30, 2017||Realtime Data, Llc||Data feed acceleration|
|US20020080871 *||Oct 3, 2001||Jun 27, 2002||Realtime Data, Llc||System and method for data feed acceleration and encryption|
|US20070043939 *||Oct 19, 2006||Feb 22, 2007||Realtime Data Llc||Systems and methods for accelerated loading of operating systems and application programs|
|US20070050514 *||Oct 26, 2006||Mar 1, 2007||Realtime Data Llc||System and methods for accelerated data storage and retrieval|
|US20070050515 *||Oct 26, 2006||Mar 1, 2007||Realtime Data Llc||System and methods for accelerated data storage and retrieval|
|US20070083746 *||Oct 19, 2006||Apr 12, 2007||Realtime Data Llc||Systems and methods for accelerated loading of operating systems and application programs|
|US20070168724 *||Jan 27, 2005||Jul 19, 2007||Akihito Kohiga||High-speed restart method, information processing device, and program|
|US20080072028 *||Mar 15, 2007||Mar 20, 2008||Allison Michael S||Method of restarting a computer platform|
|US20080148037 *||Dec 15, 2006||Jun 19, 2008||Rothman Michael A||Efficient platform initialization|
|US20090154545 *||May 19, 2008||Jun 18, 2009||Realtime Data Llc||Bandwidth sensitive data compression and decompression|
|US20090158023 *||Dec 17, 2007||Jun 18, 2009||Spansion Llc||Adaptive system boot accelerator for computing systems|
|US20100267442 *||Jun 30, 2010||Oct 21, 2010||Wms Gaming Inc.||Gaming Machine Having A Community Game With Side Wagering|
|US20100316114 *||Jan 8, 2010||Dec 16, 2010||Realtime Data Llc||Bandwidth sensitive data compression and decompression|
|US20110037626 *||Feb 9, 2010||Feb 17, 2011||Fallon James J||Data Compression Systems and Methods|
|US20110047129 *||Aug 18, 2009||Feb 24, 2011||Computer Associates Think, Inc.||Backup and recovery of systems including boot configuration data in an extension firmware interface partition|
|US20110055540 *||May 25, 2010||Mar 3, 2011||Wei-Nan Lin||Pre-Boot Loader for Reducing System Boot Time|
|US20110199243 *||Aug 16, 2010||Aug 18, 2011||Realtime Data LLC DBA IXO||System and Method For Data Feed Acceleration and Encryption|
|US20110208833 *||May 5, 2011||Aug 25, 2011||Realtime Data LLC DBA IXO||System and Methods For Accelerated Data Storage And Retrieval|
|US20110231642 *||May 27, 2011||Sep 22, 2011||Realtime Data LLC DBA IXO||Systems and Methods for Accelerated Loading of Operating Systems and Application Programs|
|US20110235697 *||Jun 6, 2011||Sep 29, 2011||Realtime Data, Llc||Bandwidth Sensitive Data Compression and Decompression|
|US20120239918 *||Apr 22, 2011||Sep 20, 2012||Shuttle Inc.||Expedited computer boot system and method|
|US20140325196 *||Apr 24, 2013||Oct 30, 2014||Dell Products L.P.||System and Method for Inventory Collection Optimization by Selective Binding of the Pre-Boot Drivers|
|USRE42727 *||Dec 20, 2007||Sep 20, 2011||Operating Systems Solutions, LLC||Method for quickly booting a computer system|
|U.S. Classification||713/2, 713/1|
|Cooperative Classification||G06F9/4401, G06F1/24, G06F9/4418|
|European Classification||G06F1/24, G06F9/44A, G06F9/44A6|
|Dec 12, 2007||AS||Assignment|
Owner name: PROTIMUS TECHNOLOGIES LLC, DISTRICT OF COLUMBIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROCONNECT LLC;REEL/FRAME:020227/0772
Effective date: 20071028
Owner name: PROTIMUS TECHNOLOGIES LLC,DISTRICT OF COLUMBIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROCONNECT LLC;REEL/FRAME:020227/0772
Effective date: 20071028
|Jul 30, 2008||AS||Assignment|
Owner name: ANPA INC., KOREA, DEMOCRATIC PEOPLE S REPUBLIC OF
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PROTIMUS TECHNOLOGIES LLC;REEL/FRAME:021316/0029
Effective date: 20080701
Owner name: ANPA INC.,KOREA, DEMOCRATIC PEOPLE S REPUBLIC OF
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PROTIMUS TECHNOLOGIES LLC;REEL/FRAME:021316/0029
Effective date: 20080701
|Jan 14, 2010||FPAY||Fee payment|
Year of fee payment: 8
|Jul 25, 2011||AS||Assignment|
Owner name: OPERATING SYSTEMS SOLUTIONS, LLC, FLORIDA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ANPA INC.;REEL/FRAME:026640/0965
Effective date: 20110303