CPC G06F 12/0862 (2013.01) [G06F 3/0604 (2013.01); G06F 3/0659 (2013.01); G06F 3/0679 (2013.01); G06F 2212/602 (2013.01)] | 20 Claims |
1. A storage device, comprising:
a memory; and
a controller coupled to the memory and configured to:
receive a prefetch request to retrieve data for a first host device;
access a frozen time table indicating a plurality of host devices for which data has been prefetched from the memory, the frozen time table further indicating a plurality of frozen times associated with respective ones of the plurality of host devices;
determine whether the first host device has priority over a second host device included in the frozen time table, wherein the first host device is associated with a first frozen time of the plurality of frozen times, the second host device is associated with a second frozen time of the plurality of frozen times, and the first host device is determined to have the priority over the second host device in response to either:
the second frozen time being smaller than the first frozen time, and the frozen time table indicating that the second host device has a cache thrash and the first host device has a cache hit,
or
the second frozen time being equivalent to the first frozen time, the frozen time table indicating that the first host device has a first amount of prefetched data that was hit in a prior host read command and the second host device has a second amount of prefetched data that was hit in a prior host read command, and the first amount of prefetched data being greater than the second amount of prefetched data;
determine to prefetch the data for the first host device in response to the first host device being determined to have the priority over the second host device;
receive a host read command from the first host device; and
provide the prefetched data to the first host device in response to the host read command.
|