US 11,656,994 B2
Non-volatile memory with optimized read
Judah Gamliel Hahn, Ofra (IL); Shay Benisty, Beer Sheva (IL); and Ariel Navon, Revava (IL)
Assigned to Western Digital Technologies, Inc., San Jose, CA (US)
Filed by WESTERN DIGITAL TECHNOLOGIES, INC., San Jose, CA (US)
Filed on May 3, 2021, as Appl. No. 17/306,073.
Prior Publication US 2022/0350747 A1, Nov. 3, 2022
Int. Cl. G06F 12/08 (2016.01); G06F 13/16 (2006.01); G06F 13/42 (2006.01); G06F 12/0868 (2016.01); G06F 12/0871 (2016.01)
CPC G06F 12/0868 (2013.01) [G06F 12/0871 (2013.01); G06F 13/1668 (2013.01); G06F 13/4221 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method comprising:
a non-volatile storage system, that is implementing a persistent memory region (“PMR”) and a PMR cache comprising a plurality of cache segments that are each a cache segment size, informing a host connected to the storage system of the cache segment size;
the host determining that a set of data needs to be read from the PMR;
the host using the cache segment size to determine a set of the cache segments that will be used by the storage system for reading the set of data;
the host sending a plurality of read requests including at least one read request for each cache segment of the set of the cache segments that will be used by the storage system for reading the set of data;
in response to the plurality of read requests, the storage system reading groups of data from the PMR, loading the groups of data into the set of the cache segments, and transmitting a unit of data from each cache segment of the set of cache segments to the host such that each group of data is at a cache segment size and the unit of data is smaller than the cache segment size such that multiple units of data fit within one cache segment;
after the host sends the at least one read request for each cache segment of the set of cache segments, the host sending additional read requests for additional data of the set of data; and
the storage system transmitting the additional data to the host in response to the additional read requests by reading the additional data from the set of the cache segments and transmitting the additional data read to the host.