CPC G06F 3/0659 (2013.01) [G06F 3/0611 (2013.01); G06F 3/0631 (2013.01); G06F 3/0656 (2013.01); G06F 3/0679 (2013.01); G06F 11/1004 (2013.01); G06F 12/10 (2013.01); G06F 2212/657 (2013.01)] | 20 Claims |
1. A method for reading data in a storage device, the method comprising:
receiving, by the storage device, a read command from a host device, wherein the read command comprises a Logical Block Address (LBA) of stored data to be read;
obtaining, by the storage device, a Physical Block Number (PBN) based on the LBA and a Logical to Physical (L2P) mapping;
determining, by the storage device, whether the PBN is a block of a volatile memory of the storage device;
reading, by the storage device, the stored data directly from the volatile memory based on the PBN being a block of the volatile memory;
incrementing, by the storage device, a read counter associated with the PBN based on the stored data being read directly from the volatile memory;
reading, by the storage device, the stored data from a non-volatile memory of the storage device based on the PBN not being a block of the volatile memory; and
determining, by the storage device, whether a read disturbance exceeds a threshold limit and whether the read counter exceeds a maximum read limit while the stored data is read from the non-volatile memory.
|