Mass storage accelerator
First Claim
1. A method of improving the performance of reading data from a rotating disk drive, comprising:
- receiving a first command from a host system to read a burst of data with a defined starting address in the rotating disk drive;
determining if the address for the burst of data for the first command is non-contiguous to a previously accessed address;
if it has been determined that the address is non-contiguous, then reading the requested data from the rotating disk drive and copying an initial portion of the data to a non-volatile memory device;
subsequently receiving a second command from the host system to read a burst of data with the same starting address in the rotating disk drive;
determining if the address for the burst of data from the second command is non-contiguous to a previously accessed address;
if it has been determined that the address is non-contiguous, then reading the initial portion of the requested data from the non-volatile memory device, and reading the remainder of the requested data from the rotating disk drive, thereby eliminating delay in providing data to the host system caused by seek time in the rotating disk drive.
2 Assignments
0 Petitions
Accused Products
Abstract
A data storage device is provided. A disk device is combined with a non-volatile memory device to provide much shorter write access time and much higher data write speed than can be achieved with a disk device alone. Interleaving bursts of sector writes between the two storage devices can effectively eliminate the effect of the seek time of the disk device. Following a non-contiguous logical address transition from a host system, the storage controller can perform a look-ahead seek operation on the disk device, while writing current data to the non-volatile memory device. Such a system can exploit the inherently faster write access characteristics of a non-volatile memory device, eliminating the dead time normally caused by the disk seek time.
-
Citations
29 Claims
-
1. A method of improving the performance of reading data from a rotating disk drive, comprising:
-
receiving a first command from a host system to read a burst of data with a defined starting address in the rotating disk drive;
determining if the address for the burst of data for the first command is non-contiguous to a previously accessed address;
if it has been determined that the address is non-contiguous, then reading the requested data from the rotating disk drive and copying an initial portion of the data to a non-volatile memory device;
subsequently receiving a second command from the host system to read a burst of data with the same starting address in the rotating disk drive;
determining if the address for the burst of data from the second command is non-contiguous to a previously accessed address;
if it has been determined that the address is non-contiguous, then reading the initial portion of the requested data from the non-volatile memory device, and reading the remainder of the requested data from the rotating disk drive, thereby eliminating delay in providing data to the host system caused by seek time in the rotating disk drive. - View Dependent Claims (2, 3, 4)
-
-
5. A method of improving the performance of reading data from a hard drive provided in a computer system, comprising:
-
receiving a request from a host system to read data with a defined starting address in the hard drive;
determining if the address of requested data is contiguous to a previously accessed data;
if the address of the requested data is contiguous to the previously accessed data, then reading the requested data from the hard drive; and
if the address of the requested data is not contiguous to the previously accessed data, then determining whether a first portion of the requested data resides on a non-volatile mass storage device;
if the first portion of the requested data resides on the non-volatile mass storage device, then reading the first portion of the requested data from the non-volatile mass storage device and reading the remainder of the requested data from the hard drive; and
if the first portion of the requested data does not reside on the non-volatile mass storage device, then reading the requested data from the hard drive and copying the first portion of the requested data to the non-volatile mass storage device.
-
-
6. A data storage system comprising:
-
a first non-volatile storage device;
a second non-volatile storage device having a slower average access time and a higher capacity than the first storage device, wherein the slower average access time is the average delay that is necessary before the second non-volatile storage device can begin to write data; and
a storage controller operable to direct a first portion of data to the first storage device and a second portion of data to the second storage device. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of improving the performance of a hard drive in a computer system, comprising:
-
connecting the hard drive to a system bus of the computer system through an interface allowing data to be passed in either direction between the system bus and the hard drive;
connecting a non-volatile mass storage device with faster average access time and lower capacity than the hard drive to the system bus through an interface allowing data to be passed in either direction between the system bus and the non-volatile mass storage device, wherein the faster average access time is the average delay that is necessary before the non-volatile mass storage device can begin to write data; and
using a storage controller to direct a first portion of data from the computer system to the non-volatile mass storage device and a second portion of data from the computer system to the hard drive.
-
-
16. A data storage system comprising:
-
a first non-volatile storage device;
a second non-volatile storage device having a slower average access time and a higher capacity than the first storage device, wherein the slower average access time is the average delay that is necessary before the second non-volatile storage device can begin to read data; and
a storage controller operable to retrieve a first portion of data from the first storage device and a second portion of data from the second storage device. - View Dependent Claims (17, 18, 19)
-
-
20. A method of improving the performance of a hard drive of a computer system, comprising:
-
connecting the hard drive to a system bus in the computer system through an interface allowing data to be passed in either direction between the system bus and the hard drive;
connecting a non-volatile mass storage device with faster average access time and lower capacity than the hard drive to the system bus through an interface allowing data to be passed in either direction between the system bus and the non-volatile mass storage device, wherein the faster average access time is the average delay that is necessary before the non-volatile mass storage device can begin to read data; and
using a storage controller to return to the computer system a first portion of data from the non-volatile mass storage device and a second portion of data from the hard drive.
-
-
21. A data storage system comprising:
-
a first storage device that is operable to store head data, the head data being a first portion of data in a contiguous data stream;
a second storage device having a slower average access time and a higher capacity than the first storage device, the second storage device being operable to store body data, the body data being a remaining portion of data in a contiguous data stream;
a head table that is operable to contain information relating to the location of the head data and the location of the body data; and
a storage controller operable to satisfy data storage requests by using the head table.
-
-
22. A method for storing data comprising:
-
receiving a write command from a host system bus to write to a data address;
receiving a data fragment from the host system bus;
storing a first portion of the data fragment in a first storage device;
causing, prior to the completion of storing the first portion of the data fragment in the first storage device, a second storage device to be prepared to write data; and
storing a remaining portion of the data fragment in the second storage device after the second storage device has been prepared. - View Dependent Claims (23, 24, 25, 26)
-
-
27. A method for retrieving data comprising:
-
receiving a read command from a host system bus to read data at a data address;
determining if a first portion of the data resides on a first storage device;
if the first portion of data resides on the first storage device, then reading the first portion of the data from the first storage device;
causing, prior to the completion of reading the first portion of the data fragment in the first storage device, a second storage device to be prepared to read a remaining portion of the data; and
reading the remaining portion of data from the second storage device after the second storage device has been prepared to read the remaining portion of the data; and
if the first portion of data does not reside on the first storage device, then reading both the first portion of the data and the remaining portion of the data from the second storage device. - View Dependent Claims (28)
-
-
29. A computer-readable medium including at least computer program code for storing data, the computer-readable medium comprising:
-
computer program code for receiving a write command from a host system bus to write to a data address;
computer program code for receiving a data fragment from the host system bus;
computer program code for storing a first portion of the data fragment in a first storage device;
computer program code for causing a second storage device to be prepared to write data prior to the completion of storing the first portion of the data fragment in the first storage device; and
computer program code for storing a remaining portion of the data fragment in the second storage device after the second storage device has been prepared.
-
Specification