Efficient error handling mechanisms in data storage systems
First Claim
1. A non-volatile data storage system, comprising:
- a non-volatile memory array comprising a plurality of physical addresses each configured to store user data and metadata; and
a controller configured to;
maintain a mapping associating a set of physical addresses of the plurality of physical addresses in the non-volatile memory array with a set of logical addresses,the set of physical addresses including at least a first physical address and a second physical address different from each other, the first physical address storing at least a first user data and a first metadata,the set of logical addresses including at least a first logical address and a second logical address different from each other, the mapping indexed by the set of logical addresses;
attempt to move the first user data from the first physical address to the second physical address by associating in the mapping the first logical address with the second physical address;
determine whether the first user data is unrecoverable; and
in response to determining that the first user data is unrecoverable;
determine, in the mapping, based at least in part on the first metadata, whether the first logical address is associated with the first physical address;
if the first logical address is associated in the mapping with the first physical address, dissociate in the mapping the first logical address from the first physical address; and
if the logical address indicated in the first metadata is not associated with the first physical address, attempt to locate the second logical address corresponding to the first physical address in the mapping based on flipping one or more bits in data read from the first metadata.
8 Assignments
0 Petitions
Accused Products
Abstract
A data storage system configured to efficiently search and update system data is disclosed. In one embodiment, the data storage system can attempt to correct errors in retrieved data configured to index system data. Metadata stored along with user data in a memory location can be configured to indicate a logical address associated in a logical-to-physical location mapping with a physical address at which user data and metadata are stored. The data storage system can generate modified versions of logical address indicated by the metadata and determine whether such modified versions match the physical address in the logical-to-physical mapping. Modified versions of the logical address can be generated by flipping one or more bits in the logical address indicated by the metadata. Efficiency can be increased and improved performance can be attained.
63 Citations
20 Claims
-
1. A non-volatile data storage system, comprising:
-
a non-volatile memory array comprising a plurality of physical addresses each configured to store user data and metadata; and a controller configured to; maintain a mapping associating a set of physical addresses of the plurality of physical addresses in the non-volatile memory array with a set of logical addresses, the set of physical addresses including at least a first physical address and a second physical address different from each other, the first physical address storing at least a first user data and a first metadata, the set of logical addresses including at least a first logical address and a second logical address different from each other, the mapping indexed by the set of logical addresses; attempt to move the first user data from the first physical address to the second physical address by associating in the mapping the first logical address with the second physical address; determine whether the first user data is unrecoverable; and in response to determining that the first user data is unrecoverable; determine, in the mapping, based at least in part on the first metadata, whether the first logical address is associated with the first physical address; if the first logical address is associated in the mapping with the first physical address, dissociate in the mapping the first logical address from the first physical address; and if the logical address indicated in the first metadata is not associated with the first physical address, attempt to locate the second logical address corresponding to the first physical address in the mapping based on flipping one or more bits in data read from the first metadata. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. In a non-volatile data storage system comprising a controller and a non-volatile memory array comprising a plurality of physical addresses each configured to store user data and metadata, a method of relocating data, the method comprising:
-
maintaining a mapping associating a set of physical addresses of the plurality of physical addresses in the non-volatile memory array with a set of logical addresses, the set of physical addresses including at least a first physical address and a second physical address different from each other, the first physical address storing at least a first user data and a first metadata, the set of logical addresses including at least a first logical address and a second logical address different from each other, the mapping indexed by the set of logical addresses; attempting to move the first user data from the first physical address to the second physical address by associating in the mapping the first logical address with the second physical address; determining whether the first user data is unrecoverable; and in response to determining that the first user data is unrecoverable; determining, in the mapping, based at least in part on the first metadata, whether the first logical address is associated with the first physical address; if the first logical address is associated in the mapping with the first physical address, dissociating, in the mapping, the first logical address from the first physical address; and if the logical address indicated in the first metadata is not associated with the first physical address, attempting to locate the second logical address corresponding to the first physical address in the mapping based on flipping one or more bits in data read from the first metadata, wherein the method is performed under the control of the controller. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification