GB2399188A - Reducing the boot-up time of a computer system - Google Patents
Reducing the boot-up time of a computer system Download PDFInfo
- Publication number
- GB2399188A GB2399188A GB0304873A GB0304873A GB2399188A GB 2399188 A GB2399188 A GB 2399188A GB 0304873 A GB0304873 A GB 0304873A GB 0304873 A GB0304873 A GB 0304873A GB 2399188 A GB2399188 A GB 2399188A
- Authority
- GB
- United Kingdom
- Prior art keywords
- segments
- sequence
- storage
- boot
- disk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Abstract
A technique is described for reducing the time required for a computer system to boot up from a storage unit, having a dedicated microcontroller with firmware for controlling storage accesses. The microcontroller firmware records the addresses of the sequence of segments accessed during a predetermined period following powering-up of the system, and then reorders the segments on the storage so as to reduce the access time for this sequence of segments the next time the system is booted up.
Description
2399 1 88 Reducing the boot-up time of a computer system
Background to the invention
This invention relates to computer systems. More specifically, the invention is concerned with reducing the boot-up time of a computer system.
Each time a computer system is powered up, it goes through a boot-up sequence. This typically performs a power-on self test, and then loads the operating system kernel and essential device drivers from the disk drive into the main system memory. The boot-up sequence can take a significant time, which can be very inconvenient for the user.
US Patent No. 5920896 describes a proposal for reducing boot-up time. During an initial phase of the system start-up, a tracer program is loaded. This logs disk accesses made during the boot-up sequence, and stores the results in a temporary buffer in memory. The trace data is then processed to generate a reallocation vector, specifying how the disk blocks should be reallocated so as to speed up the sequence of disk accesses.
The blocks are then relocated on the disk as stipulated by the reallocation vector. As a result, the next time the system is started up, the boot-up will be faster.
However, a problem with this is that it cannot optimise the entire boot sequence; it can only optimise the portion of the boot sequence after the trace program has been loaded. Another problem is that the trace program and reallocation programs are both dependent on the operating system, and therefore have to be tailored to the particular operating system.
The object of the present invention is to provide an improved technique for reducing the boot-up time of a computer system, which does not suffer from these problems.
Summary of the invention
According to the invention, a computer system includes a storage unit having a dedicated microcontroller with firmware for controlling storage accesses, the microcontroller firmware including! À means for recording the addresses of the sequence of segments accessed during a predetermined period following powering-up of the system, and À means for reordering the segments on the storage so as to reduce the access time for this sequence of segments the next time the system is powered up.
Because this technique is implemented by the storage unit sub- system firmware, rather than the operating system, the whole of the boot sequence can be optimized, not just those portions of the boot sequence subsequent to loading of a tracer program.
Moreover, because it is not dependent on the operating system, it is cheaper to implement.
As will be described, the reordering of the segments may be performed either by moving the segments, or by copying them.
Brief description of the drawing
Figure 1 is a block schematic diagram of a computer system including a disk sub-system.
Figure 2 is a flow chart showing the operation of a sequence in the disk sub-system firmware for accessing a disk segment.
Figure 3 is a schematic diagram showing the allocation of boot sectors on the disk before optimization.
Figure 4 is a schematic diagram showing the allocation of boot sectors on the disk after optimization by moving segments.
Figure 5 is a schematic diagram showing the allocation of boot sectors on the disk after optimization by copying segments.
Description of an embodiment of the invention
Figure 1 shows a computer system, which in this example is a personal computer (PC) system. The system comprises a central processing unit (CPU) 10, connected by a system bus 11 to a number of other units, including a main memory (RAM) 12, a read- only memory (ROM) 13, and at least one disk sub-system 14.
The ROM 13 holds primary boot-up code, which runs whenever the system is powered up. This code performs a power-on self test, and then loads the operating system kernel and essential device drivers from the disk subsystem 14 (or from a designated one of the disk sub-systems, if there are more than one of them) into the main system memory.
The (or each) disk sub-system 14 includes a magnetic fixed disk drive (hard disk) 15, a dedicated microcontroller 16, and a ROM 17. The ROM 17 stores firmware for controlling the microcontroller in response to commands from the CPU 10. These include firmware sequences for reading and writing specified disk segments.
The firmware uses two parameters, Observation and BootCountDown.
À Observation is a boolean parameter, which indicates whether the sequence of disk accesses is to be observed and recorded.
In the case of a boot disk, Observation is initially turned ON when the disk drive is powered up. In the case of a non-boot disk, Observation is initially turned OFF. The initial setting of Observation can be controlled by a jumper switch (not shown) on the outside of the disk sub-system, or by a SCSI or IDE command from the primary boot up code.
À BootCountDown is a count value, which defines the period during which the observation (if any) is to take place.
BootCountDown is initially set to a predetermined value. This I period is chosen to be long enough to include the loading time of all the programs that are to be loaded in the normal boot up process. I Figure 2 shows the firmware sequence performed when the disk sub-system receives a command for accessing a disk segment (for read or write).
(Step 21) The firmware first accesses the required disk segment, and reads or writes the data to or from the CPU.
(Step 22) The firmware then tests the Observation parameter. If Observation is OFF, the sequence exits.
(Step 23) If Observation is ON, the firmware records the segment address in a temporary buffer. This buffer may be on the disk I or, for better performance, in the microcontroller's volatile memory (not shown).
(Step 24) BootCountDown is decremented by one.
(Step 25) If BootCountDown is greater than zero, the sequence exits.
(Step 26) If on the other hand BootCountDown has now reached zero, the firmware switches Observation OFF, and initiates a remapping process (Step 27), before exiting.
The remapping process runs as a background task on the microcontroller 16. The process re-orders all the segments that were accessed during the BootTime period, so as to physically relocate them in a series of contiguous locations of the disk, in the order in which they were accessed. The re-ordering may be done either by moving or by copying the segments.
For example, figure 3 shows a number of segments on the disk, prior to reordering. These segments are labelled 1 - 6 to indicate the order in which they were accessed during boot-up.
It can be seen that these segments are scattered around the disk in a random manner, resulting in excessive head movement and hence slow access.
In the case where re-ordering is done by moving the segments, each segment in turn (other than the first) is moved to a position on the disk immediately following the previously accessed segment in the sequence. This is illustrated in figure 4.
In the case where re-ordering is done by copying the segments, each of the segments in turn is copied to a reserved cache area on the disk. This is illustrated in figure 5. In this case, the firmware sequence for accessing the disk (figure 2) is modified so as to access the cache copy of the segments, rather than the original.
In either case, it can be seen that the result of the re- ordering is to arrange the segments in contiguous sequential locations, in the order in which they were accessed during boot- up. As a result, the next time the system is booted up, the segments can be accessed much more quickly, thereby reducing the time taken for boot- up.
Some possible modifications It will be appreciated by those skilled in the art that many modifications may be made to the example as described above without departing from the scope of the invention.
For example, instead of defining the observation period in terms of the number of accesses (by means of the BootCountDown parameter), the observation period could alternatively be defined in terms of an actual time value (e.g. a number of seconds).
Means could be provided for allowing the user to switch between the two reordering modes (moving and copying) described above.
The invention could also be used within a SCSI controller card or disk sub-system controller card.
Although the example described above is a personal computer system, the invention is equally applicable to other types of computer system where a boot-up sequence is performed.
Although the example described above uses a magnetic hard disk, it will be appreciated that the invention is equally applicable to other types of storage device that may be used for boot-up.
Claims (9)
1. A computer system including a storage unit having a dedicated microcontroller with firmware for controlling storage accesses, wherein the microcontroller firmware includes À means for recording the addresses of the sequence of segments accessed during a predetermined period following powering-up of the system, and À means for reordering the segments on the storage so as to reduce the access time for this sequence of segments the next time the system is powered up.
2. A system according to claim 1 wherein the segments are reordered by moving them to new locations on the storage.
3. A system according to claim 1 wherein the segments are reordered by copying them to new locations on the storage.
4. A system according to any preceding claim wherein the segments are reordered into contiguous sequential locations.
5. A system according to any preceding claim wherein the storage unit is a magnetic disk unit.
6. A system according to any preceding claim wherein the predetermined period is user-configurable.
7. A storage unit having a dedicated microcontroller with firmware for controlling storage accesses, wherein the microcontroller firmware includes À means for recording the addresses of the sequence of segments accessed during a predetermined period following powering-up of the unit, and À means for reordering the segments on the storage so as to reduce the access time for this sequence of segments the next time the unit is powered up.
8. A computer system substantially as hereinbefore described with reference to the accompanying drawings.
9. A storage unit substantially as hereinbefore described with reference to the accompanying drawings.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0304873A GB2399188B (en) | 2003-03-04 | 2003-03-04 | Reducing the boot-up time of a computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0304873A GB2399188B (en) | 2003-03-04 | 2003-03-04 | Reducing the boot-up time of a computer system |
Publications (3)
Publication Number | Publication Date |
---|---|
GB0304873D0 GB0304873D0 (en) | 2003-04-09 |
GB2399188A true GB2399188A (en) | 2004-09-08 |
GB2399188B GB2399188B (en) | 2005-11-30 |
Family
ID=9954050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB0304873A Expired - Lifetime GB2399188B (en) | 2003-03-04 | 2003-03-04 | Reducing the boot-up time of a computer system |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2399188B (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004047369A1 (en) * | 2004-09-29 | 2006-03-30 | Siemens Ag | Data processing device e.g. smart-phone, has tree manager to execute booting operation by transferring data segments from hard disk into read only memory based on shortest path |
US11416263B1 (en) * | 2021-02-12 | 2022-08-16 | Western Digital Technologies, Inc. | Boosted boot procedure by background re-arrangement of read patterns |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5920896A (en) * | 1997-03-21 | 1999-07-06 | Intel Corporation | Reducing operating system start-up/boot time through disk block relocation |
US6202121B1 (en) * | 1998-04-15 | 2001-03-13 | Microsoft Corporation | System and method for improved program launch time |
US6240527B1 (en) * | 1997-09-05 | 2001-05-29 | Roxio, Inc. | Method software and apparatus for saving using and recovering data |
US6317875B1 (en) * | 1999-01-15 | 2001-11-13 | Intel Corporation | Application execution performance through disk block relocation |
-
2003
- 2003-03-04 GB GB0304873A patent/GB2399188B/en not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5920896A (en) * | 1997-03-21 | 1999-07-06 | Intel Corporation | Reducing operating system start-up/boot time through disk block relocation |
US6240527B1 (en) * | 1997-09-05 | 2001-05-29 | Roxio, Inc. | Method software and apparatus for saving using and recovering data |
US6202121B1 (en) * | 1998-04-15 | 2001-03-13 | Microsoft Corporation | System and method for improved program launch time |
US6317875B1 (en) * | 1999-01-15 | 2001-11-13 | Intel Corporation | Application execution performance through disk block relocation |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004047369A1 (en) * | 2004-09-29 | 2006-03-30 | Siemens Ag | Data processing device e.g. smart-phone, has tree manager to execute booting operation by transferring data segments from hard disk into read only memory based on shortest path |
US11416263B1 (en) * | 2021-02-12 | 2022-08-16 | Western Digital Technologies, Inc. | Boosted boot procedure by background re-arrangement of read patterns |
US20220261255A1 (en) * | 2021-02-12 | 2022-08-18 | Western Digital Technologies, Inc. | Boosted Boot Procedure By Background Re-Arrangement Of Read Patterns |
CN114968381A (en) * | 2021-02-12 | 2022-08-30 | 西部数据技术公司 | Improving boot process by background rearrangement of read modes |
Also Published As
Publication number | Publication date |
---|---|
GB2399188B (en) | 2005-11-30 |
GB0304873D0 (en) | 2003-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6963951B2 (en) | Partition recovery method | |
US6408357B1 (en) | Disk drive having a cache portion for storing write data segments of a predetermined length | |
JP4422652B2 (en) | Incremental merge method and memory system using the same | |
US20090049255A1 (en) | System And Method To Reduce Disk Access Time During Predictable Loading Sequences | |
US8266611B2 (en) | Hard disk drive with disk embedded DOS boot image and firmware download method | |
EP0978040B1 (en) | Memory device | |
US20040268070A1 (en) | Method and apparatus for backing up data in virtual storage medium | |
US20040044886A1 (en) | Partition recovery method | |
US11188267B2 (en) | Method and apparatus and computer program product for handling sudden power off recovery | |
US7174421B2 (en) | HDD with rapid availability of critical data after critical event | |
US20060277353A1 (en) | Virtual tape library device, virtual tape library system, and method for writing data to a virtual tape | |
US20060218361A1 (en) | Electronic storage device with rapid data availability | |
JPH0115903B2 (en) | ||
DE102005051265A1 (en) | Method and system for accessing audiovisual data in a computer | |
GB2399188A (en) | Reducing the boot-up time of a computer system | |
JP6100750B2 (en) | Device with memory and controller and device with data storage device | |
US6209057B1 (en) | Storage device having data buffer | |
US20050240686A1 (en) | Method for downloading firmware of peripheral equipment, and peripheral equipment | |
KR100692958B1 (en) | Portable solid state drive with emulator | |
US20050125651A1 (en) | Method for providing critical data in an HDD after critical event | |
CN103631564A (en) | Method for protecting a gpt cached disks data integrity in an external operating system environment | |
JP3951808B2 (en) | Hard disk drive subsystem | |
JPH0635622A (en) | External storage device | |
US20050071558A1 (en) | Method and apparatus for increasing storage capacity in a disk array system | |
JP2010027140A (en) | Reading device for hard disk driving device, and copying device with reading device for hard disk driving device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PE20 | Patent expired after termination of 20 years |
Expiry date: 20230303 |