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 locations configured to store user data and metadata; and
a controller configured to;
maintain a mapping associating a set of physical addresses corresponding to the plurality of physical locations in the non-volatile memory array with a set of logical addresses, the mapping indexed by the set of logical addresses;
process first user data stored at a first physical location of the plurality of physical locations;
determine in the mapping that a first logical address of the set of logical addresses read from metadata stored at the first physical location is not associated with a first physical address of the set of physical addresses corresponding to the first physical location;
generate a second logical address of the set of logical addresses by performing one or more error corrections of a plurality of error corrections on the first logical address read from the metadata stored at the first physical location, the second logical address determined in the mapping to be associated with the first physical address; and
update the mapping at the second logical address based on the processed first user data.
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 do increased and improved performance can be attained.
-
Citations
21 Claims
-
1. A non-volatile data storage system, comprising:
-
a non-volatile memory array comprising a plurality of physical locations configured to store user data and metadata; and a controller configured to; maintain a mapping associating a set of physical addresses corresponding to the plurality of physical locations in the non-volatile memory array with a set of logical addresses, the mapping indexed by the set of logical addresses; process first user data stored at a first physical location of the plurality of physical locations; determine in the mapping that a first logical address of the set of logical addresses read from metadata stored at the first physical location is not associated with a first physical address of the set of physical addresses corresponding to the first physical location; generate a second logical address of the set of logical addresses by performing one or more error corrections of a plurality of error corrections on the first logical address read from the metadata stored at the first physical location, the second logical address determined in the mapping to be associated with the first physical address; and update the mapping at the second logical address based on the processed first user data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 21)
-
-
8. A method comprising:
-
maintaining a mapping associating a set of physical addresses corresponding to a plurality of physical locations in a non-volatile memory array with a set of logical addresses, the mapping indexed by the set of logical addresses; processing first user data stored at a first physical location of the plurality of physical locations; determining in the mapping that a first logical address of the set of logical addresses read from metadata stored at the first physical location is not associated with a first physical address of the set of physical addresses corresponding to the first physical location; generating a second logical address of the set of logical addresses by performing one or more error corrections of a plurality of error corrections on the first logical address read from the metadata stored at the first physical location, the second logical address determined in the mapping to be associated with the first physical address; and updating the mapping at the second logical address based on the processed first user data. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A controller for a non-volatile storage system, the controller configured to:
-
maintain a mapping associating a set of physical addresses corresponding to a plurality of physical locations in a non-volatile memory array with a set of logical addresses, the mapping indexed by the set of logical addresses; process first user data stored at a first physical location of the plurality of physical locations; determine in the mapping that a first logical address of the set of logical addresses read from metadata stored at the first physical location is not associated with a first physical address of the set of physical addresses corresponding to the first physical location; generate a second logical address of the set of logical addresses by performing one or more error corrections of a plurality of error corrections on the first logical address read from the metadata stored at the first physical location, the second logical address determined in the mapping to be associated with the first physical address; and update the mapping at the second logical address based on the processed first user data. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification