← Back to Patent Explorer
US5682500A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for determining sequential cache data access in progress

Assignee: EMC Corp
•
Filing: 1994-12-12
•
Granted: 1997-10-28
•
Expires: 2014-12-12
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A dynamic 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 along with a time indication which relates to each data elements use in the cache. A sequential data access indicator, responsive to the cache index, to the time indication associated with each data element and to a user selectable 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.

Inventors

  • 👤 Natan Vishlitzky
  • 👤 Haim Kopylovitz

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 07:20
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/12; G06F12/121; G06F12/0802; G06F12/0862; G06F12/123; G06F12/0866; G06F2212/00; G06F2212/50; G06F2212/502; G06F2212/60; G06F2212/6026; Y; Y10; Y10S; Y10S427/00; Y10S427/103; Y10S427/104

Claims Analysis

Total Claims: 49
Claim 1
Independent Claim 146 words
A cache management system including a cache manager, for monitoring and controlling contents of cache memory, said cache management system comprising: a timer for providing a time indication; a cache indexer, responsive to said time indication, for maintaining a cache index of data elements which are stored in said cache memory, said cache index of data elements including a time indication associated with each data element indexed in said cache index by said cache indexer; and a sequential data access indicator, responsive to detection of a plurality of sequential data elements stored in said cache memory, to a user selectable sequential data access indicator threshold value, and to a comparison of time indication associated with at least first and second sequential data elements of said plurality of detected sequential data elements, for providing an indication that at least one process is effecting a sequential data access.
Claim 2
Dependent Claim 146 words
A cache management system including a cache manager, for monitoring and controlling contents of cache memory, said cache management system comprising: a timer for providing a time indication; a cache indexer, responsive to said time indication, for maintaining a cache index of data elements which are stored in said cache memory, said cache index of data elements including a time indication associated with each data element indexed in said cache index by said cache indexer; and a sequential data access indicator, responsive to detection of a plurality of sequential data elements stored in said cache memory, to a user selectable sequential data access indicator threshold value, and to a comparison of time indication associated with at least first and second sequential data elements of said plurality of detected sequential data elements, for providing an indication that at least one process is effecting a sequential data access.
Claim 3
Dependent Claim 34 words
The cache management system of claim 1, wherein said cache indexer maintains a cache index of data elements which are retrieved from at least one data storage device and stored in said cache memory.
Claim 4
Dependent Claim 35 words
The cache management system of claim 2, wherein said time indication associated with each element indexed in said cache index includes a time of retrieval of an associated data element from said data storage device.
Claim 5
Dependent Claim 166 words
The cache management system of claim 1, further including: at least one host and at least one data storage device: 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 at least one recently used sequential data element stored in said cache memory.
Claim 6
Dependent Claim 28 words
The cache management system of claim 4, wherein said system includes a plurality of coupled data storage devices; and wherein said cache indexer maintains only one cache index.
Claim 7
Dependent Claim 24 words
The cache management system of claim 5, wherein said one cache index is organized on a data storage device by data storage device basis.
Claim 8
Dependent Claim 44 words
The cache management system of claim 4, wherein said selectable sequential data access indicator threshold value and the value of said selectable predetermined number of data elements to be prefetched are user selectable for each data storage device coupled to the cache management system.
Claim 9
Dependent Claim 26 words
The cache management system of claim 1, wherein said cache indexer maintains a cache index for each data storage device coupled to said cache management system.
Claim 10
Dependent Claim 27 words
The cache management system of claim 4, wherein each of said data elements retrieved from said at least one data storage device include an individual data record.
Claim 11
Dependent Claim 57 words
The cache management of claim 5, wherein each of said data elements retrieved from said at least one data storage device include all data records stored in one data storage unit of said data storage device; and wherein said cache indexer maintains a current index of said plurality of data storage devices stored in said cache memory.
Claim 12
Dependent Claim 23 words
The cache management system of claim 10, wherein said at least one of said plurality of data storage devices includes a disk drive.
Claim 13
Dependent Claim 25 words
The cache management system of claim 11, wherein said at least one of said plurality of said data storage devices includes a disk drive track.
Claim 14
Dependent Claim 25 words
The cache management system of claim 11, wherein said at least one of said plurality of said data storage devices includes a disk drive cylinder.
Claim 15
Dependent Claim 25 words
The cache management system of claim 1, wherein said at least one of said plurality of data storage devices includes at least one optical disk.
Claim 16
Dependent Claim 16 words
The cache management system of claim 1, wherein said cache memory includes a high-speed semiconductor memory.
Claim 17
Dependent Claim 25 words
The cache management system of claim 1, wherein said cache management system further includes at least one data storage device controller including said cache manager.
Claim 18
Dependent Claim 23 words
The cache management system of claim 1, wherein said cache management system further includes at least one host adapter including said cache manager.
Claim 19
Dependent Claim 80 words
The cache management system of claim 4, wherein said cache management system includes one system wide cache memory; and wherein said cache management system establishes and maintains at least one micro-cache memory having a predetermined number of memory locations for use by said at least one process effecting a sequential data access, said predetermined number of memory locations corresponding to said user selectable value of a predetermined maximum number of sequential data elements to be stored in said cache memory.
Claim 20
Dependent Claim 50 words
The cache management system of claim 18, wherein said data retrieval requestor requests storage of said prefetched data elements in said at least one micro-cache memory; and wherein said cache data replacer requests replacement of the least recently used sequential data element stored in said at least one micro-cache memory.
Claim 21
Dependent Claim 46 words
The cache management system of claim 18, wherein said cache management system includes a plurality of processes effecting a sequential data access; and wherein said cache management system establishes and maintains one micro-cache memory for each of said plurality of processes effecting a sequential data access.
Claim 22
Dependent Claim 36 words
The cache management system of claim 18, wherein said at least one micro-cache memory is established and maintained for exclusive use by only said at least one process during the effecting of a sequential data access.
Claim 23
Dependent Claim 85 words
The cache management system of claim 21, wherein said cache management system returns the predetermined number of memory locations of said at least one micro-cache memory to, and for use by, said system wide cache memory upon an indication of the termination of a sequential data access in effect by said at least one process, said indication of the termination of a sequential data access provided by said sequential data access indicator upon detection of non-sequential data elements requested by said at least one process.
Claim 24
Dependent Claim 51 words
The cache management system of claim 1, wherein said sequential data access indicator provides an indication of the termination of a sequential data access in effect by said at least one process upon detection of non-sequential data elements requested by said at least one process and stored in said cache memory.
Claim 25
Dependent Claim 62 words
The cache management system of claim 1, wherein said cache index further includes an associated data-used bit having set and reset conditions, said reset condition providing an indication that said associated data element has been retrieved from said at least one data storage device, stored in said cache memory, and used by said at least one process effecting a sequential data access.
Claim 26
Dependent Claim 24 words
The cache management system of claim 24 wherein each data-used bit is set upon the associated data element being stored in said cache memory.
Claim 27
Dependent Claim 16 words
The cache management system of claim 1, wherein said time indication includes a real time indication.
Claim 28
Dependent Claim 16 words
The cache management system of claim 1, wherein said time indication includes a relative time indication.
Claim 29
Dependent Claim 31 words
The cache management system of claim 24 wherein each data-used bit is reset upon an associated data element being used by said at least one process effecting a sequential data access.
Claim 30
Dependent Claim 68 words
The cache management system of claim 24 wherein said sequential data access indicator provides an indication that said at least one process executing on said at least one host is effecting a sequential data access upon detecting a plurality of sequential data elements used by said at least one process in response to said reset condition of said data-used bit associated with said plurality of used data elements.
Claim 31
Dependent Claim 68 words
The cache management system of claim 4, wherein said cache management system further includes 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 the values of said user selectable sequential data access indicator threshold and said user selectable predetermined number of data elements to be prefetched.
Claim 32
Dependent Claim 95 words
The cache management system of claim 30 wherein said dynamic cache management system adjuster increases the value of said user selectable sequential data access indicator threshold in response to a detection of unused data elements retrieved from said at least one data storage device and stored in said cache memory; and wherein said dynamic cache management system adjuster decreases the value of said user selectable sequential data access indicator threshold in response to an indication of no unused data elements retrieved from said at least one data storage device and stored in said cache memory.
Claim 33
Dependent Claim 79 words
The cache management system of claim 30 wherein said dynamic cache management system adjuster dynamically increases the value of said user selectable predetermined number of data elements to be prefetched in response to an increasing number of retrieved, stored and used data elements; and wherein said dynamic cache management system adjuster decreases the value of said user selectable predetermined number of data elements to be prefetched in response to a decreasing number of retrieved, stored and used data elements.
Claim 34
Dependent Claim 443 words
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 time indicator, for providing a signal including a time indication; a cache indicator, for providing a signal including a time indication; a cache indexer, for maintaining a cache index of data elements which are stored on said at least one data storage system, said cache index of data elements including a time indication associated with each data element index in said cache index by said cache indexer; 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; and a sequential data access indicator, responsive to detection of a plurality of sequential data elements retrieved from said at least one data storage device and stored in said cache memory, and to a user selectable sequential data access indicator threshold value, and to a comparison of time indications associated with at least first and second sequential data elements of said plurality of detected sequential data elements, for providing an indication that at least one process executing on said at least one host is effecting a sequential data access; 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.
Claim 35
Dependent Claim 443 words
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 time indicator, for providing a signal including a time indication; a cache indicator, for providing a signal including a time indication; a cache indexer, for maintaining a cache index of data elements which are stored on said at least one data storage system, said cache index of data elements including a time indication associated with each data element index in said cache index by said cache indexer; 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; and a sequential data access indicator, responsive to detection of a plurality of sequential data elements retrieved from said at least one data storage device and stored in said cache memory, and to a user selectable sequential data access indicator threshold value, and to a comparison of time indications associated with at least first and second sequential data elements of said plurality of detected sequential data elements, for providing an indication that at least one process executing on said at least one host is effecting a sequential data access; 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.
Claim 36
Dependent Claim 345 words
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 at least the contents of said cache memory, said index including at least a time indication associated with each data element indexed and contained in 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 including said time indication associated with each data element indexed and contained in 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; to said time indication associated with each data element indexed and contained in 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 alterable established value 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 concurrently stored in said cache memory; and requesting replacement of at least one least recently used sequential data element stored in said cache memory in excess of said predetermined maximum number of sequential data elements to be previously stored in said cache memory for used 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.
Claim 37
Dependent Claim 345 words
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 at least the contents of said cache memory, said index including at least a time indication associated with each data element indexed and contained in 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 including said time indication associated with each data element indexed and contained in 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; to said time indication associated with each data element indexed and contained in 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 alterable established value 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 concurrently stored in said cache memory; and requesting replacement of at least one least recently used sequential data element stored in said cache memory in excess of said predetermined maximum number of sequential data elements to be previously stored in said cache memory for used 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.
Claim 38
Dependent Claim 84 words
The method of claim 34, further including before the step of requesting replacement of at least one least recently used data element, the step of: establishing a second alterable value corresponding to said predetermined maximum number of sequential data elements to be concurrently stored in said cache memory; and requesting replacement of at least one least recently used sequential data element stored in said cache memory or equal to predetermined maximum number of sequential data elements to be concurrently stored in said cache memory.
Claim 39
Dependent Claim 84 words
The method of claim 35, further including after the step of determining that at least one sequential data access is in progress, the step of: establishing and maintaining at least one micro-cache memory having a predetermined number of memory locations for use by said at least one process determined to be effecting a sequential data access, said predetermined number of memory locations corresponding to said second alterable value of a predetermined maximum number of sequential data elements to be stored in said cache memory.
Claim 40
Dependent Claim 51 words
The method of claim 36, wherein said step of requesting retrieval and storage requests storage of said data elements in said at least one micro-cache memory; and wherein said step of requesting replacement requests replacement of the least recently used sequential data element stored in said at least one micro-cache memory.
Claim 41
Dependent Claim 44 words
The method of claim 36, wherein said method of establishing and maintaining at least one micro-cache memory establishes and maintains one micro-cache memory for each of a plurality of processes executing on said at least one host system and effecting at sequential data access.
Claim 42
Dependent Claim 44 words
The method of claim 36, wherein the step of establishing and maintaining at least one micro-cache memory establishes and maintains said at least one micro-cache memory for exclusive use by only said at least one process during the effecting of a sequential data access.
Claim 43
Dependent Claim 85 words
The method of claim 39, further including after the step, of requesting replacement, the step of: returning the predetermined number of memory locations of said at least one micro-cache memory to, and for use by, a system wide cache memory upon an indication of the termination of a sequential data access in progress by said at least one process, said indication of the termination of a sequential data access provided by said step of determining that at least one sequential data access is in progress.
Claim 44
Dependent Claim 64 words
The method of claim 34, further including after the step of requesting replacement, the step of: dynamically monitoring and adjusting the cache management method, said step of dynamically monitoring and adjusting comprising the steps of: dynamically adjusting at least the values of said data access indicator threshold value and said first alterable value corresponding to a predetermined number of data elements to be prefetched.
Claim 45
Dependent Claim 88 words
The method of claim 41, wherein the step of dynamically monitoring and adjusting the cache management system further includes the steps of: increasing the value of said sequential data access indicator threshold in response to detecting unused data elements retrieved from said at least one data storage device and stored in said cache memory; and decreasing the value of said sequential data access indicator threshold in response to detecting no unused data elements retrieved from said at least one data storage device and stored in said cache memory.
Claim 46
Dependent Claim 71 words
The method of claim 41 wherein, said step of dynamically monitoring and adjusting further includes the steps of: increasing the value of said predetermined number of data elements to be prefetched in response to an increasing number of retrieved, stored and used data elements; and decreasing the value of said predetermined number of data elements to be prefetched in response to a decreasing number of retrieved, stored and used data elements.
Claim 47
Dependent Claim 34 words
The method of claim 34, wherein the step of establishing said alterable sequential data access indicator threshold value includes the step of user selecting and establishing said alterable sequential data access indicator threshold value.
Claim 48
Dependent Claim 63 words
The method of claim 34, wherein the step of establishing said first alterable value corresponding to a predetermined number of data elements to be prefetched from said at least one data storage device includes the step of user selecting and establishing said alterable value corresponding to a predetermined number of data elements to be prefetched from said at least one data storage device.
Claim 49
Dependent Claim 61 words
The method of claim 34, wherein the step of establishing a second alterable value corresponding to a predetermined maximum number of sequential data elements to be concurrently stored in said cache memory includes the step of user selecting and establishing said second alterable value corresponding to a predetermined maximum number of sequential data elements to be stored in said cache memory.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-10-27 2001-04-28 2001-10-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-10-27 2005-04-28 2005-10-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-10-27 2009-04-28 2009-10-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag