System and method for dynamically controlling cache management
First Claim
1. A cache management system, for monitoring and controlling contents of cache memory coupled to at least one host and to at least one data storage device, said cache management system comprising:
- a cache indexer, for maintaining a cache index of data elements which are retrieved from said at least one data storage device by said at least one host and stored in said cache memory;
a sequential data access indicator, responsive to said cache index, for detecting a plurality of sequential data elements retrieved from said at least one data storage device and stored in said cache memory, and responsive to said detection of a plurality of sequential data elements retrieved from said at least one data storage device and stored in cache memory and to a user selectable sequential data access indicator threshold value, for providing an indication that at least one process executing on said at least one host is effecting a sequential data access;
a data retrieval requestor, responsive to said indication that at least one process executing on said at least one host is effecting a sequential data access and to a user selectable value of a predetermined number of data elements to be prefetched, for requesting retrieval from said at least one data storage device of up to a number of data elements equal to the value of said user selectable predetermined number of data elements to be prefetched;
a cache data replacer, responsive to a user selectable value of a predetermined maximum number of sequential data elements to be stored in said cache memory for use by said at least one process effecting a sequential data access, and to said data retrieval requestor requesting retrieval of a data element, for requesting replacement of a least recently used sequential data element stored in said cache memory in excess of the value of said predetermined maximum number to be stored for use by said at least one process upon each retrieval of a data element in excess of said predetermined maximum number previously stored in said cache memory for use by said at least one process; and
a dynamic cache management system adjuster, responsive to said indication that at least one process executing on said at least one host is effecting a sequential data access, for dynamically adjusting at least the values of said user selectable sequential data access indicator threshold and said user selectable predetermined number of data elements to be prefetched.
1 Assignment
0 Petitions
Accused Products
Abstract
A cache management system and method monitors and controls the contents of cache memory coupled to at least one host and at least one data storage device. A cache indexer maintains a current index of data elements which are stored in cache memory. A sequential data access indicator, responsive to the cache index and to a user selectable sequential data access threshold, determines that a sequential data access is in progress for a given process and provides an indication of the same. The system and method allocate a micro-cache memory to any process performing a sequential data access. In response to the indication of a sequential data access in progress and to a user selectable maximum number of data elements to be prefetched, a data retrieval requestor requests retrieval of up to the selected maximum number of data elements from a data storage device. A user selectable number of sequential data elements determines when previously used micro-cache memory locations will be overwritten. A method of dynamically monitoring and adjusting cache management parameters is also presented.
-
Citations
40 Claims
-
1. A cache management system, for monitoring and controlling contents of cache memory coupled to at least one host and to at least one data storage device, said cache management system comprising:
-
a cache indexer, for maintaining a cache index of data elements which are retrieved from said at least one data storage device by said at least one host and stored in said cache memory; a sequential data access indicator, responsive to said cache index, for detecting a plurality of sequential data elements retrieved from said at least one data storage device and stored in said cache memory, and responsive to said detection of a plurality of sequential data elements retrieved from said at least one data storage device and stored in cache memory and to a user selectable sequential data access indicator threshold value, for providing an indication that at least one process executing on said at least one host is effecting a sequential data access; a data retrieval requestor, responsive to said indication that at least one process executing on said at least one host is effecting a sequential data access and to a user selectable value of a predetermined number of data elements to be prefetched, for requesting retrieval from said at least one data storage device of up to a number of data elements equal to the value of said user selectable predetermined number of data elements to be prefetched; a cache data replacer, responsive to a user selectable value of a predetermined maximum number of sequential data elements to be stored in said cache memory for use by said at least one process effecting a sequential data access, and to said data retrieval requestor requesting retrieval of a data element, for requesting replacement of a least recently used sequential data element stored in said cache memory in excess of the value of said predetermined maximum number to be stored for use by said at least one process upon each retrieval of a data element in excess of said predetermined maximum number previously stored in said cache memory for use by said at least one process; and a dynamic cache management system adjuster, responsive to said indication that at least one process executing on said at least one host is effecting a sequential data access, for dynamically adjusting at least the values of said user selectable sequential data access indicator threshold and said user selectable predetermined number of data elements to be prefetched.
-
-
2. A cache management system including a cache manager, for monitoring and controlling contents of cache memory coupled to at least one host and to at least one data storage device, said cache management system comprising:
-
a cache indexer, for maintaining a cache index of data elements which are retrieved from said at least one data storage device by said at least one host and stored in said cache memory; a sequential data access indicator, responsive to said cache index, for detecting a plurality of sequential data elements retrieved from said at least one data storage device and stored in said cache memory, and responsive to said detection of a plurality of sequential data element retrieved from said at least one data storage device and stored in cache memory and to a user selectable sequential data access indicator threshold value, for providing an indication that at least one process executing on said at least one host is effecting a sequential data access; a data retrieval requestor, responsive to said indication that at least one process executing on said at least one host is effecting a sequential data access and to a user selectable value of a predetermined number of data elements to be prefetched, for requesting retrieval from said at least one data storage device of up to a number of data elements equal to the value of said user selectable predetermined number of data elements to be prefetched; and a cache data replacer, responsive to a user selectable value of a predetermined maximum number of sequential data elements to be stored in said cache memory for use by said at least one process effecting a sequential data access, and to said data retrieval requestor requesting retrieval of a data element, for requesting replacement of a least recently used sequential data element stored in said cache memory in excess of the value of said predetermined maximum number to be stored for use by said at least one process upon each retrieval of a data element in excess of said predetermined maximum number currently stored in said cache memory for use by said at least one process. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A cache management method, for monitoring and controlling contents of cache memory coupled to at least one host and to at least one data storage device, said cache management method comprising:
-
establishing and maintaining in said cache memory, a current index of the contents of said cache memory; establishing an alterable, sequential data access indicator threshold value, for providing a predetermined minimum number of data elements stored in said cache memory indicating an occurrence of a sequential data access in progress by at least one process executing on said at least one host; reading said current index of the contents of said cache memory; determining that at least one sequential data access is in progress by said at least one process in response to reading said current index of the contents of said cache memory and to said sequential data access indicator threshold value; establishing a first alterable value corresponding to a predetermined number of data elements to be prefetched from said at least one data storage device; requesting retrieval and storage in said cache memory of a number of data elements equal to said established value of predetermined number of data elements to be prefetched and stored in cache memory in response to the determination of a sequential data access in progress; establishing a second alterable value corresponding to a predetermined maximum number of sequential data elements to be stored in said cache memory; and requesting replacement of a least recently used sequential data element stored in said cache memory in excess of said predetermined maximum number previously stored in said cache memory for use by said at least one process in response to said established second alterable value of predetermined maximum number of sequential data elements to be stored in said cache memory. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40)
-
Specification