Method for minimizing a computer's initial program load time after a system reset or a power-on using non-volatile storage
First Claim
1. A computer program product for use with a peripheral storage apparatus including at least one data storage element and a data cache, comprising:
- a computer program storage medium readable by a digital processing apparatus; and
a program means on the program storage medium and including instructions executable by the digital processing apparatus for causing the digital processing apparatus to copy data stored on the data storage element to the data cache by;
after an initial power-up or reset of the peripheral storage apparatus and a host computer associated with the peripheral storage apparatus, receiving a read command from the host computer for transferring to the host computer a data record of a program stored on the data storage element;
in response to receiving, generating and storing in the peripheral storage apparatus a prefetch table representative of a storage location and length of the data record requested by the initial read command;
after a subsequent power-on or reset of the peripheral storage apparatus, and during a second power-on or reset of the host computer, accessing by the peripheral storage apparatus the prefetch table to read the data record into the data cache; and
in response to subsequent read commands from the host computer, determining whether records requested by the subsequent read commands are stored in the data cache, and if so, communicating the records from the data cache to the host computer, and otherwise communicating the records from the data storage element to the host computer.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for increasing boot speed of a host computer with associated hard disk drive generates a prefetch table that contains pointers to disk locations and lengths of the records of an application program requested by the host computer during an initial power-on/reset. During the next power-on/reset, before the host computer is ready for data but after the disk drive has completed its reset routine, using the prefetch table the disk drive accesses the previously requested data and copies it onto the cache of the disk drive, from where it is transferred to the host computer when the host computer requests it. The prefetch table is updated to reflect disk location changes for the various records, or to reflect new records that were requested by the host computer but not found in cache during the previous power-on/reset.
-
Citations
33 Claims
-
1. A computer program product for use with a peripheral storage apparatus including at least one data storage element and a data cache, comprising:
-
a computer program storage medium readable by a digital processing apparatus; and a program means on the program storage medium and including instructions executable by the digital processing apparatus for causing the digital processing apparatus to copy data stored on the data storage element to the data cache by; after an initial power-up or reset of the peripheral storage apparatus and a host computer associated with the peripheral storage apparatus, receiving a read command from the host computer for transferring to the host computer a data record of a program stored on the data storage element; in response to receiving, generating and storing in the peripheral storage apparatus a prefetch table representative of a storage location and length of the data record requested by the initial read command; after a subsequent power-on or reset of the peripheral storage apparatus, and during a second power-on or reset of the host computer, accessing by the peripheral storage apparatus the prefetch table to read the data record into the data cache; and in response to subsequent read commands from the host computer, determining whether records requested by the subsequent read commands are stored in the data cache, and if so, communicating the records from the data cache to the host computer, and otherwise communicating the records from the data storage element to the host computer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer program product for use with a host computer coupled to a peripheral storage apparatus including at least one data storage element having a program stored thereon and a data cache, comprising:
a data storage device for use within a peripheral storage apparatus, the data storage device including a computer usable medium having computer readable program means for loading the program from the peripheral storage apparatus to the host computer during power-on or reset of the host computer, comprising; computer readable code means for receiving a command from the host computer during a power-up or reset of the host computer; computer readable code means for, when the command is a read command, generating and storing in the peripheral storage apparatus a prefetch table representative of at least a storage location of the records requested by the read command for transfer of the records from the data storage element to the data cache for a subsequent power-on or reset of the host computer; computer readable code means for determining whether the records have been stored in the data cache in response to a previous power-on or reset of the host computer; and computer readable code means for communicating the records to the host computer in response to the code means for determining. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
20. A method for causing a computer program stored in a data storage element in a peripheral storage apparatus of a computer system to be loaded to a host computer, the method comprising the steps of:
-
after power-up or reset, receiving a read command from the host computer for transferring a data record of a computer program stored on the data storage element to the host computer; in response to receiving, generating and storing in the peripheral storage apparatus a prefetch table representative of a storage location and length of the data record requested by the initial read command; after a subsequent power-on or reset of the peripheral storage apparatus, and during a second power-on or reset of the host computer, accessing by the peripheral storage apparatus the prefetch table to read the data record into the data cache; and in response to subsequent read commands from the host computer, determining whether records requested by the subsequent read commands are stored in the data cache, and if so, communicating the records from the data cache to the host computer, and otherwise communicating the records from the data storage element to the host computer. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27)
-
-
28. A disk drive, comprising:
-
one or more read heads for reading from one or more disks of the disk drive; a data cache comprising a random access memory (RAM); a controller; the controller being operative to execute the following steps after a power-up or reset of the disk drive and a host computer associated with the disk drive; receiving, from the host computer, a read command which requests data records of an application program stored on the one or more disks; generating and storing a prefetch table in the disk drive in response to receiving the read command, the prefetch table representing disk storage location and length of the data records requested by the read command; the controller being operative to execute the following steps for subsequent power-up or resets of the disk drive and host computer; receiving, from the host computer, a subsequent read command which requests data records stored on the one or more disks; prior to receiving the subsequent read command, identifying and locating the data records of the application program on the one or more disks based on the disk storage location and length represented in the prefetch table; prior to receiving the subsequent read command, and upon identifying and locating the data records, reading the data records of the application program from the one or more disks and storing them in the data cache; and in response to receiving the subsequent read command, communicating the prestored data records of the application program from the data cache to the host computer if the subsequent read command requests those data records, and otherwise accessing data records from the one or more disks for communicating. - View Dependent Claims (29, 30, 31)
-
-
32. A method for reducing an initial program load time with use of a hard drive, the method comprising:
-
after a power-up or reset of the hard drive and a host computer associated therewith, the following steps being performed by and at the hard drive; receiving, from the host computer, a read command which requests data records of an application program stored on one or more hard disks of the hard drive; generating and storing a prefetch table in response to receiving the read command, the prefetch table representing disk storage location and length of the data records requested by the read command; for subsequent power-up or resets of the hard drive and host computer, the following steps being performed by and at the hard drive; receiving, from the host computer, a subsequent read command which requests data records stored on the one or more hard disks; prior to receiving the subsequent read command, identifying and locating the data records of the application program on the one or more hard disks based on the disk storage location and length represented in the prefetch table; prior to receiving the subsequent read command, and upon identifying and locating the data records, reading the data records of the application program from the one or more hard disks and storing them in a data cache in the hard drive; and in response to receiving the subsequent read command, communicating the prestored data records of the application program from the data cache if the subsequent read command requests those data records, and otherwise accessing data records from the one or more hard disks for communicating. - View Dependent Claims (33)
-
Specification