Method of operating a cache system including determining an elapsed time or amount of data written to cache prior to writing to main storage
First Claim
1. A method for operating a cache system which serves as a data storage device for a host device, said cache system having a mass storage device, a segmented cache memory, and a background data transfer mechanism for writing data from said cache memory to said mass storage device, said method comprising the steps of:
- dynamically assigning logical tracks of said cache memory to correspond to logical tracks of said mass storage device;
accepting data written by said host device into portions of the assigned logical tracks of said cache memory;
calculating the time period which has elapsed since the oldest of the modified data existing in said cache memory was written to said cache memory and which said modified data has not yet been written to said mass storage device; and
if said calculated time period equals or exceeds a predefined time period;
determining the number of logical tracks containing modified data in said cache memory which have not been written to said mass storage device; and
causing said background data transfer mechanism to write the modified portions of at least some of those modified tracks of data from said cache memory to said mass storage device.
0 Assignments
0 Petitions
Accused Products
Abstract
A method for operating a cache memory system which has a high speed cache memory and a mass storage device that operate in a highly efficient manner with a host device. The system operates to dynamically assign segments of the cache memory to correspond to segments of the mass storage device, accept data written by the host into portions of the assigned segments of the cache memory, and determine if the elapsed time since any modified data has been written to the cache memory exceeds a predetermined period of time, or if the number of modified segments to be written to the mass storage device exceeds a preset limit. If so, the cache memory system enables a transfer mechanism to cause modified data to be written from the cache memory to the mass storage device, based on the location of segments relative to a currently selected track of the mass storage device. Movement of updated data from the cache memory (solid state storage) to the mass storage device (which may be, for example, a magnetic disk) and of prefetched data from the mass storage to the cache memory is done on a timely, but unobtrusive, basis as a background task. A direct, private channel between the cache memory and the mass storage device prevents communications between these two media from conflicting with transmission of data between the host and the cache memory system. A set of microprocessors manages and oversees the data transmission and storage. Data integrity is maintained in the event of a power interruption via a battery assisted, automatic and intelligent shutdown procedure.
116 Citations
28 Claims
-
1. A method for operating a cache system which serves as a data storage device for a host device, said cache system having a mass storage device, a segmented cache memory, and a background data transfer mechanism for writing data from said cache memory to said mass storage device, said method comprising the steps of:
-
dynamically assigning logical tracks of said cache memory to correspond to logical tracks of said mass storage device; accepting data written by said host device into portions of the assigned logical tracks of said cache memory; calculating the time period which has elapsed since the oldest of the modified data existing in said cache memory was written to said cache memory and which said modified data has not yet been written to said mass storage device; and if said calculated time period equals or exceeds a predefined time period; determining the number of logical tracks containing modified data in said cache memory which have not been written to said mass storage device; and causing said background data transfer mechanism to write the modified portions of at least some of those modified tracks of data from said cache memory to said mass storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for operating a cache system which serves as a data storage device for a host device, said cache system having a mass storage device, a segmented cache memory, and a background data transfer mechanism for writing data from said cache memory to said mass storage device, said method comprising the steps of:
-
dynamically assigning logical tracks of said cache memory to correspond to logical tracks of said mass storage device; accepting data written by said host device into portions of the assigned logical tracks of said cache memory; calculating the time period which has elapsed since the oldest of the modified data existing in said cache memory was written to said cache memory and which modified data has not yet been written to said mass storage device; and if said calculated time period equals or exceeds a predefined time period, causing said background data transfer operations to write the modified portions of at least some logical tracks of modified data which have not been written to said mass storage device from said cache memory to said mass storage device, the sequence of writing said logical tracks containing modified data being selected by the logical tracks corresponding mass storage device location relative to a currently selected track of said mass storage device. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method for operating a cache system which serves as a data storage device for a host device, said cache system having a mass storage device, a segmented cache memory, and a background data transfer mechanism for writing data from said cache memory to said mass storage device, said method comprising the steps of:
-
dynamically assigning logical tracks of said cache memory to correspond to logical tracks of said mass storage device; accepting data written by said host device into portions of the assigned logical tracks of said cache memory; determining the number of written to logical tracks of said cache memory having modified portions which have not subsequently been written to said mass storage device; and if said number of logical tracks having modified portions exceeds a predetermined number; determining the number of logical tracks having modified portions in said cache memory which have not been written to said mass storage device; and causing said background data transfer mechanism to write the modified portions of a number of logical tracks of modified data, equal to the number of logical tracks of modified data in said cache memory determined in response to said number of logical tracks having modified portions exceeding said predetermined number, from said cache memory to said mass storage device. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
-
23. A method for operating a cache system which serves as a data storage device for a host device, said cache system having a mass storage device, a segmented cache memory, and a background data transfer mechanism for writing data from said cache memory to said mass storage device, said method comprising the steps of:
-
dynamically assigning logical tracks of said cache memory to correspond to logical tracks of said mass storage device; accepting data written by said host device into portions of the assigned logical tracks of said cache memory; determining the number of logical tracks of said cache memory having modified portions which have not subsequently been written to said mass storage device; and if said number of logical tracks having modified portions exceeds a predetermined number, causing said background data transfer mechanism to write all modified portions of logical tracks containing modified data from said cache memory to said mass storage device, said logical tracks of modified data being selected by said logical track'"'"'s corresponding mass storage device location relative to a currently selected logical track of said mass storage device. - View Dependent Claims (24, 25, 26, 27, 28)
-
Specification