| CPC A41D 3/04 (2013.01) [A45F 3/04 (2013.01); G06F 12/0246 (2013.01); G06F 12/0804 (2013.01); G06F 12/084 (2013.01); G06F 12/0895 (2013.01); G11C 5/04 (2013.01); G11C 11/005 (2013.01); G11C 14/0018 (2013.01); A45F 2003/001 (2013.01); G06F 2212/1016 (2013.01); G06F 2212/1041 (2013.01); G06F 2212/1044 (2013.01); G06F 2212/305 (2013.01); G06F 2212/7202 (2013.01); G06F 2212/7205 (2013.01); G11C 7/22 (2013.01); G11C 11/4076 (2013.01); G11C 2207/2245 (2013.01)] | 3 Claims |

|
1. A method of caching data from a non-volatile memory, the method comprising:
maintaining non-volatile cache lines of the data in the non-volatile memory;
maintaining a tag cache and a direct cache across volatile memory dies, the direct cache including direct cache lines each distributed across the volatile memory dies;
receiving a read command directed to one of the non-volatile cache lines in the non-volatile memory;
reading from the tag cache to determine whether the one of the non-volatile cache lines in the non-volatile memory has a corresponding data entry in the cache memory; and
if the one of the non-volatile cache lines in the non-volatile memory lacks the corresponding data entry, copying the data from the one of the non-volatile cache lines in the non-volatile memory to one of the direct cache lines distributed across the volatile memory dies.
|