CPC G06F 12/0246 (2013.01) [G06F 12/0804 (2013.01); G06F 12/0873 (2013.01); G06F 12/1054 (2013.01); G06F 13/1668 (2013.01); G06F 2212/7201 (2013.01)] | 20 Claims |
1. A memory system, comprising:
a controller, configured to perform operations comprising:
receive a write request;
responsive to receiving the write request, compare an amount of data to be written in the write request to a threshold amount of data;
responsive to a determination that the amount of data to be written in the write request exceeds the threshold amount of data, storing a mapping between a physical and logical address corresponding to the write request in a first cache, the first cache configured to store, in a volatile memory, contiguous portions of a logical-to-physical mapping table indexed by logical block address;
responsive to a determination that the amount of data to be written in the write request does not exceed the threshold amount of data, storing the mapping in a second cache, the second cache configured to store, in a volatile memory, non-contiguous portions of the logical-to-physical mapping table indexed by logical block address;
determine if the second cache is full; and
in response to a determination that the second cache is full:
determine if a first logical block address of the second cache is present in the first cache;
in response to a determination that the first logical block address of the second cache is present in the first cache:
store a first physical address associated with the first logical block address of the second cache with the first logical block address in the first cache; and
mark a record with the first logical block address in the second cache as invalid.
|