|Publication number||USRE40092 E1|
|Application number||US 10/918,293|
|Publication date||19 Feb 2008|
|Filing date||12 Aug 2004|
|Priority date||11 May 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 (61), 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 *||4 Sep 1987||5 Dec 1989||Digital Equipment Corporation||Boot system for distributed digital data processing system|
|US4959774 *||30 Jun 1989||25 Sep 1990||Ampex Corporation||Shadow memory system for storing variable backup blocks in consecutive time periods|
|US5155833 *||11 May 1987||13 Oct 1992||At&T Bell Laboratories||Multi-purpose cache memory selectively addressable either as a boot memory or as a cache memory|
|US5269019 *||8 Apr 1991||7 Dec 1993||Storage Technology Corporation||Non-volatile memory storage and bilevel index structure for fast retrieval of modified records of a disk track|
|US5269022 *||22 Mar 1991||7 Dec 1993||Kabushiki Kaisha Toshiba||Method and apparatus for booting a computer system by restoring the main memory from a backup memory|
|US5276890||9 Mar 1993||4 Jan 1994||Kabushiki Kaisha Toshiba||Resume control system and method for executing resume processing while checking operation mode of CPU|
|US5392415||15 Dec 1992||21 Feb 1995||International Business Machines Corporation||System for grouping non-contiguous pages belonging to a storage object for page out|
|US5513359||23 Jul 1993||30 Apr 1996||International Business Machines Corporation||Desktop computer having a single-switch suspend/resume function|
|US5564054||25 Aug 1994||8 Oct 1996||International Business Machines Corporation||Fail-safe computer boot apparatus and method|
|US5710930 *||4 Aug 1995||20 Jan 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||21 Jun 1996||28 Apr 1998||Ast Research, Inc.||System and method for recovering PC configurations|
|US5784628||12 Mar 1996||21 Jul 1998||Microsoft Corporation||Method and system for controlling power consumption in a computer system|
|US5870613||14 Apr 1995||9 Feb 1999||Smith Corona/Acer||Power mangement system for a computer|
|US5925129||7 Jun 1995||20 Jul 1999||International Business Machines Corporation||Desktop computer system having compressed suspend to hardfile|
|US5978913 *||5 Mar 1998||2 Nov 1999||Compaq Computer Corporation||Computer with periodic full power-on self test|
|US6073232 *||25 Feb 1997||6 Jun 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||18 Dec 1997||1 Aug 2000||International Business Machines Corporation||Software-enabled fast boot|
|US6173417 *||30 Apr 1998||9 Jan 2001||Intel Corporation||Initializing and restarting operating systems|
|US6209088||21 Sep 1998||27 Mar 2001||Microsoft Corporation||Computer hibernation implemented by a computer operating system|
|US6279109||7 Jan 1999||21 Aug 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||3 Mar 1999||16 Apr 2002||Mitsubishi Denki Kabushiki Kaisha||Information processing apparatus method of booting information processing apparatus at a high speed|
|US6401198 *||9 Mar 1999||4 Jun 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||24 Aug 1995||4 Mar 2003||Microsoft Corporation||Booting a computer system using a last known good set of configuration data|
|US6567774 *||30 Jan 1998||20 May 2003||Compaq Computer Corporation||Method and system for configuring and updating networked client stations using a virtual disk and a snapshot disk|
|US6609182||20 Jan 2000||19 Aug 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 *||22 Apr 2005||30 Jun 2009||Sun Microsystems, Inc.||System and method for diagnostic test innovation|
|US7962734 *||15 Mar 2007||14 Jun 2011||Hewlett-Packard Development Company, L.P.||Method of restarting a computer platform|
|US8010776 *||17 Dec 2007||30 Aug 2011||Spansion Llc||Adaptive system boot accelerator for computing systems|
|US8054879||8 Jan 2010||8 Nov 2011||Realtime Data Llc||Bandwidth sensitive data compression and decompression|
|US8073047||19 May 2008||6 Dec 2011||Realtime Data, Llc||Bandwidth sensitive data compression and decompression|
|US8090936||19 Oct 2006||3 Jan 2012||Realtime Data, Llc||Systems and methods for accelerated loading of operating systems and application programs|
|US8112619||19 Oct 2006||7 Feb 2012||Realtime Data Llc||Systems and methods for accelerated loading of operating systems and application programs|
|US8275897||8 Apr 2006||25 Sep 2012||Realtime Data, Llc||System and methods for accelerated data storage and retrieval|
|US8443183 *||25 May 2010||14 May 2013||Spashtop Inc.||Pre-boot loader for reducing system boot time|
|US8502707||9 Feb 2010||6 Aug 2013||Realtime Data, Llc||Data compression systems and methods|
|US8504710||26 Oct 2006||6 Aug 2013||Realtime Data Llc||System and methods for accelerated data storage and retrieval|
|US8553759||6 Jun 2011||8 Oct 2013||Realtime Data, Llc||Bandwidth sensitive data compression and decompression|
|US8643513||6 Jun 2011||4 Feb 2014||Realtime Data Llc||Data compression systems and methods|
|US8667264 *||22 Apr 2011||4 Mar 2014||Shuttle Inc.||Expedited computer boot system and method|
|US8692695||16 Aug 2010||8 Apr 2014||Realtime Data, Llc||Methods for encoding and decoding data|
|US8707018 *||28 Jun 2011||22 Apr 2014||Emc Corporation||Managing initialization of file systems|
|US8717203||24 Sep 2013||6 May 2014||Realtime Data, Llc||Data compression systems and methods|
|US8717204||24 Sep 2013||6 May 2014||Realtime Data Llc||Methods for encoding and decoding data|
|US8719438||5 May 2011||6 May 2014||Realtime Data Llc||System and methods for accelerated data storage and retrieval|
|US8723701||24 Sep 2013||13 May 2014||Realtime Data Llc||Methods for encoding and decoding data|
|US8742958||24 Sep 2013||3 Jun 2014||Realtime Data Llc||Methods for encoding and decoding data|
|US8756332||26 Oct 2006||17 Jun 2014||Realtime Data Llc||System and methods for accelerated data storage and retrieval|
|US8788801 *||18 Aug 2009||22 Jul 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||19 Dec 2013||21 Oct 2014||Realtime Data Llc||System and methods for video and audio data distribution|
|US8880862||27 May 2011||4 Nov 2014||Realtime Data, Llc||Systems and methods for accelerated loading of operating systems and application programs|
|US8929442||19 Dec 2013||6 Jan 2015||Realtime Data, Llc||System and methods for video and audio data distribution|
|US8933825||11 Apr 2014||13 Jan 2015||Realtime Data Llc||Data compression systems and methods|
|US8934535||20 Sep 2013||13 Jan 2015||Realtime Data Llc||Systems and methods for video and audio data storage and distribution|
|US9054728||24 Sep 2014||9 Jun 2015||Realtime Data, Llc||Data compression systems and methods|
|US9116908||12 Jun 2014||25 Aug 2015||Realtime Data Llc||System and methods for accelerated data storage and retrieval|
|US9141992||23 Feb 2012||22 Sep 2015||Realtime Data Llc||Data feed acceleration|
|US9143546||3 Oct 2001||22 Sep 2015||Realtime Data Llc||System and method for data feed acceleration and encryption|
|US9236882||1 Jun 2015||12 Jan 2016||Realtime Data, Llc||Data compression systems and methods|
|US9298472 *||27 Jan 2005||29 Mar 2016||Nec Corporation||High-speed restart method, information processing device, and program|
|US9348604 *||24 Apr 2013||24 May 2016||Dell Products L.P.||System and method for inventory collection optimization by selective binding of the pre-boot drivers|
|US9667751||14 Sep 2015||30 May 2017||Realtime Data, Llc||Data feed acceleration|
|US9762907||8 Jun 2015||12 Sep 2017||Realtime Adaptive Streaming, LLC||System and methods for video and audio data distribution|
|US9769477||6 Oct 2015||19 Sep 2017||Realtime Adaptive Streaming, LLC||Video data compression systems|
|US9792128||3 Nov 2014||17 Oct 2017||Realtime Data, Llc||System and method for electrical boot-device-reset signals|
|US20020080871 *||3 Oct 2001||27 Jun 2002||Realtime Data, Llc||System and method for data feed acceleration and encryption|
|US20070043939 *||19 Oct 2006||22 Feb 2007||Realtime Data Llc||Systems and methods for accelerated loading of operating systems and application programs|
|US20070050514 *||26 Oct 2006||1 Mar 2007||Realtime Data Llc||System and methods for accelerated data storage and retrieval|
|US20070050515 *||26 Oct 2006||1 Mar 2007||Realtime Data Llc||System and methods for accelerated data storage and retrieval|
|US20070083746 *||19 Oct 2006||12 Apr 2007||Realtime Data Llc||Systems and methods for accelerated loading of operating systems and application programs|
|US20070168724 *||27 Jan 2005||19 Jul 2007||Akihito Kohiga||High-speed restart method, information processing device, and program|
|US20080072028 *||15 Mar 2007||20 Mar 2008||Allison Michael S||Method of restarting a computer platform|
|US20080148037 *||15 Dec 2006||19 Jun 2008||Rothman Michael A||Efficient platform initialization|
|US20090154545 *||19 May 2008||18 Jun 2009||Realtime Data Llc||Bandwidth sensitive data compression and decompression|
|US20090158023 *||17 Dec 2007||18 Jun 2009||Spansion Llc||Adaptive system boot accelerator for computing systems|
|US20100267442 *||30 Jun 2010||21 Oct 2010||Wms Gaming Inc.||Gaming Machine Having A Community Game With Side Wagering|
|US20100316114 *||8 Jan 2010||16 Dec 2010||Realtime Data Llc||Bandwidth sensitive data compression and decompression|
|US20110037626 *||9 Feb 2010||17 Feb 2011||Fallon James J||Data Compression Systems and Methods|
|US20110047129 *||18 Aug 2009||24 Feb 2011||Computer Associates Think, Inc.||Backup and recovery of systems including boot configuration data in an extension firmware interface partition|
|US20110055540 *||25 May 2010||3 Mar 2011||Wei-Nan Lin||Pre-Boot Loader for Reducing System Boot Time|
|US20110199243 *||16 Aug 2010||18 Aug 2011||Realtime Data LLC DBA IXO||System and Method For Data Feed Acceleration and Encryption|
|US20110208833 *||5 May 2011||25 Aug 2011||Realtime Data LLC DBA IXO||System and Methods For Accelerated Data Storage And Retrieval|
|US20110231642 *||27 May 2011||22 Sep 2011||Realtime Data LLC DBA IXO||Systems and Methods for Accelerated Loading of Operating Systems and Application Programs|
|US20110235697 *||6 Jun 2011||29 Sep 2011||Realtime Data, Llc||Bandwidth Sensitive Data Compression and Decompression|
|US20120239918 *||22 Apr 2011||20 Sep 2012||Shuttle Inc.||Expedited computer boot system and method|
|US20140325196 *||24 Apr 2013||30 Oct 2014||Dell Products L.P.||System and Method for Inventory Collection Optimization by Selective Binding of the Pre-Boot Drivers|
|USRE42727 *||20 Dec 2007||20 Sep 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|
|12 Dec 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
|30 Jul 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
|14 Jan 2010||FPAY||Fee payment|
Year of fee payment: 8
|25 Jul 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