Method of operating a cache memory including determining desirability of cache ahead or cache behind based on a number of available I/O operations
First Claim
1. A method for operating a cache memory system serving a host computer, said cache memory system including a mass storage device and a cache memory having a plurality of logical blocks, each logical block having a beginning and an end, and each logical block containing one or more sectors, said method comprising the steps of:
- providing a first logical block of said cache memory for containing data accessed by said host; and
performing a cache ahead operation comprising the steps of;
determining that there is no second logical block of said cache memory which contains data that is stored at one or more locations within said mass storage device adjacent a first side of data stored in said first logical block of said cache memory, said first side being selected as a first one of the beginning and the end of data stored in said first logical block;
determining a first distance measured in sectors between a first side of the data accessed by said host which is stored within said cache memory and a first side of said first logical block of said cache memory, said first side of said first logical block being selected as one of the beginning and the end of said first logical block;
based on the size of the current host I/O operation, measured in sectors, determining the number of sequential host I/O operations required to transfer to said host computer data located within said cache memory between said data accessed by said host and said first side of said first logical block;
determining if said number of host I/O operations required is less than a first preselected number; and
if said number of host I/O operations required is less than said first preselected number, copying into a second logical block of said cache memory data which is stored at one or more locations within said mass storage device adjacent data corresponding to data stored at said first side of said first logical block of said cache memory.
0 Assignments
0 Petitions
Accused Products
Abstract
A computer data storage device made up of both solid state storage and rotating magnetic disk storage maintains a fast response time approaching that of a solid state device for many workloads and improves on the response time of a normal magnetic disk for practically all workloads. The high performance is accomplished by a special hardware configuration coupled with unique procedures and algorithms for placing and maintaining data in the most appropriate media based on actual and projected activity. The system management features a completely searchless method (no table searches) for determining the location of data within and between the two devices. Sufficient solid state memory capacity is incorporated to permit retention of useful, active data, as well as to permit prefetching of data into the solid state storage when the probabilities favor such action. Movement of updated data from the solid state storage to the magnetic disk and of prefetched data from the magnetic disk to the solid state storage is done on a timely, but unobtrusive, basis as background tasks of the described device. A direct, private channel between the solid state storage and the magnetic disk prevents the conversations between these two media from conflicting with the transmission of data between the host computer and the described device. A set of microprocessors manages and oversees the data transmission and storage. Data integrity is maintained through a power interruption via a battery assisted, automatic and intelligent shutdown procedure.
295 Citations
11 Claims
-
1. A method for operating a cache memory system serving a host computer, said cache memory system including a mass storage device and a cache memory having a plurality of logical blocks, each logical block having a beginning and an end, and each logical block containing one or more sectors, said method comprising the steps of:
-
providing a first logical block of said cache memory for containing data accessed by said host; and performing a cache ahead operation comprising the steps of; determining that there is no second logical block of said cache memory which contains data that is stored at one or more locations within said mass storage device adjacent a first side of data stored in said first logical block of said cache memory, said first side being selected as a first one of the beginning and the end of data stored in said first logical block; determining a first distance measured in sectors between a first side of the data accessed by said host which is stored within said cache memory and a first side of said first logical block of said cache memory, said first side of said first logical block being selected as one of the beginning and the end of said first logical block; based on the size of the current host I/O operation, measured in sectors, determining the number of sequential host I/O operations required to transfer to said host computer data located within said cache memory between said data accessed by said host and said first side of said first logical block; determining if said number of host I/O operations required is less than a first preselected number; and if said number of host I/O operations required is less than said first preselected number, copying into a second logical block of said cache memory data which is stored at one or more locations within said mass storage device adjacent data corresponding to data stored at said first side of said first logical block of said cache memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
Specification