US 11,704,249 B2
Frozen time cache for multi-host read operations
Adarsh Sreedhar, Karnataka (IN); and Ramanathan Muthiah, Karnataka (IN)
Assigned to WESTERN DIGITAL TECHNOLOGIES, INC., San Jose, CA (US)
Filed by Western Digital Technologies, Inc., San Jose, CA (US)
Filed on Jun. 22, 2021, as Appl. No. 17/354,168.
Prior Publication US 2022/0405206 A1, Dec. 22, 2022
Int. Cl. G06F 12/0862 (2016.01); G06F 3/06 (2006.01)
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
OG exemplary drawing
 
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.