Using temporal access patterns for determining prefetch suitability
First Claim
Patent Images
1. A system, comprising:
- a cache memory; and
a control circuit configured to;
monitor storage operations to a storage device;
identify regions accessed within the storage device;
identify time durations between sequential accesses to the same regions of the storage device;
prefetch data from the regions of the storage device based on the time durations between sequential accesses to the same regions of the storage device; and
store the prefetched data in the cache memory,wherein a first set of counters track the number of accesses to each of the different regions within a given time window and a second set of counters track a maximum number of accesses to each of the different regions for the given time window.
10 Assignments
0 Petitions
Accused Products
Abstract
A storage control system includes a prefetch controller that identifies memory regions for prefetching according to temporal memory access patterns. The memory access patterns identify a number of sequential memory accesses within different time ranges and a highest number of memory accesses to the different memory regions within a predetermine time period.
-
Citations
18 Claims
-
1. A system, comprising:
-
a cache memory; and a control circuit configured to; monitor storage operations to a storage device; identify regions accessed within the storage device; identify time durations between sequential accesses to the same regions of the storage device; prefetch data from the regions of the storage device based on the time durations between sequential accesses to the same regions of the storage device; and store the prefetched data in the cache memory, wherein a first set of counters track the number of accesses to each of the different regions within a given time window and a second set of counters track a maximum number of accesses to each of the different regions for the given time window. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system, comprising:
-
a control circuit configured to; monitor storage operations to a storage device; identify regions accessed within the storage device; identify times between sequential accesses to the same regions; prefetch data from the regions of the storage device based on the times between sequential accesses to the same regions; and track the times between sequential accesses to the same regions for different time ranges.
-
-
8. A system, comprising:
-
a control circuit configured to; monitor storage operations to a storage device; associate storage address areas within the storage device with different regions; track a number of storage operations to each of the different regions within a given time window; assign timestamps to the storage operations and determine a number of accesses to each of the different regions within the given time window by incrementing or decrementing a set of counters according to a comparison of the timestamps with a configurable time window value; and prefetch data from the storage device in response to the storage operations based on the number of accesses to each of the different regions.
-
-
9. A system, comprising:
-
a logic circuitry configured to; monitor storage operations to a storage device; associate storage address areas within the storage device with different regions; track storage accesses to the different regions during a given time window; track a maximum number of storage accesses to the different regions for the given time window; and identify an average size of the storage accesses for each of the different regions and prefetch an amount of data from the different regions according to the average size of the storage accesses for the different regions and the maximum number of accesses to the different regions for the given time window.
-
-
10. A system, comprising:
-
a control circuit configured to; monitor storage operations to a storage device; associate storage address areas within the storage device with different regions;
track storage accesses to the different regions during a given time window; andprefetch data from the storage device based on the storage accesses tracked to the different regions, wherein; a first set of counters track the number of accesses to each of the different regions within a given time window, a second set of counters track a maximum number of accesses to each of the different regions for the given time window, and a third set of counters track a number of back to back storage operations that occur within different time intervals for each of the different regions. - View Dependent Claims (11, 12)
-
-
13. A method, comprising:
-
identifying time values for accesses to different regions of a storage device; identifying a time difference between a first one of the time values for an earlier one of the accesses to one of the different regions and a second one of the time values for a later one of the accesses to one of the different regions of the storage device; incrementing a count number for one of the different regions associated with the later one of the accesses; decrementing a count number for one of the different regions associated with the earlier one of the accesses when the time difference is outside of a threshold value; identifying a maximum value for the count number associated each of the different regions; and prefetching data from the different regions based on the maximum value for the count number associated with each of the different regions.
-
-
14. A method, comprising:
-
identifying access patterns for different regions of a storage device; identifying different time ranges between sequential storage accesses in same regions of the storage device; identifying a first number for the sequential storage accesses to each of the different regions that are within a given time range; identifying a second number for all of the other sequential storage accesses to each of the different regions that are outside of the given time range; identifying a maximum number of storage accesses for each of the different regions that are within a given time window; identifying ratios for each of the different regions between the first number and the maximum number; and identifying the different regions suitable for prefetching when the ratios for the regions are greater or equal to the second number for the regions.
-
-
15. A method, comprising:
-
identifying access patterns for different regions of a storage device; determining a length of prefetching for the different regions by multiplying a maximum number of read operations to each of the different regions within a given time window by an average read size for each of the different regions; and prefetching data from the different regions of the storage device that are determined to be suitable for prefetching based on the length of prefetching for the different regions.
-
-
16. A method, comprising:
-
identifying, by a computing device, a number of memory accesses within a predetermined time period; identifying, by the computing device, times between sequential memory accesses; classifying, by the computing device, the times between the sequential memory accesses into different time ranges; and prefetching, by the computing device, contents of the memory according to the number of memory accesses, the times identified between the sequential memory accesses, and patterns between the times in the different time ranges. - View Dependent Claims (17, 18)
-
Specification