IP Library Granted Patent US 9,626,118
Granted Patent B2
US 9,626,118 · App. 14/961,856 · Granted Apr 18, 2017

Efficient error handling mechanisms in data storage systems

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,626,118
App. No.
14/961,856
Granted
Apr 18, 2017
Kind
B2
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.

Claims (44)

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.

2. The non-volatile data storage system of claim 1 , wherein the controller is configured to perform the one or more error corrections of the plurality of error corrections on the first logical address in a predetermined order.

3. The non-volatile data storage system of claim 2 , wherein the predetermined order is based on an error likelihood.

4. The non-volatile data storage system of claim 2 , wherein the plurality of error corrections comprise a first set of error corrections flipping m-bits of the first logical address, where m is a natural number.

5. The non-volatile data storage system of claim 4 , wherein the plurality of error corrections further comprise a second set of error corrections flipping m+1 bits of the first logical address.

6. The non-volatile data storage system of claim 1 , wherein the controller is configured to process the first user data by moving the first user data to a second physical location of the plurality of physical locations, and

wherein the controller is configured to update the mapping to associate the second logical address with a second physical address corresponding to the second physical location.

7. The non-volatile data storage system of claim 1 , wherein the controller is configured to process the first user data by determining the first user data is unrecoverable from the first physical location, and

wherein the controller is configured to update the mapping to disassociate the second logical address from the first physical address.

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.

9. The method of claim 8 , wherein the one or more error corrections of the plurality of error corrections on the first logical address are performed in a predetermined order.

10. The method of claim 9 , wherein the predetermined order is based on an error likelihood.

11. The method of claim 9 , wherein the plurality of error corrections comprise a first set of error corrections flipping m-bits of the first logical address, where m is a natural number.

12. The method of claim 11 , wherein the plurality of error corrections further comprise a second set of error corrections flipping m+1 bits of the first logical address.

13. The method of claim 8 , wherein processing the first user data comprises moving the first user data to a second physical location of the plurality of physical locations, and

wherein updating the mapping comprises updating the mapping to associate the second logical address with a second physical address corresponding to the second physical location.

14. The method of claim 8 , wherein processing the first user data comprises determining the first user data is unrecoverable from the first physical location, and

wherein updating the mapping comprises updating the mapping to disassociate the second logical address from the first physical address.

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.

16. The controller of claim 15 , wherein the controller is further configured to perform the one or more error corrections of the plurality of error corrections on the first logical address in a predetermined order.

17. The controller of claim 16 , wherein the predetermined order is based on an error likelihood.

18. The controller of claim 16 , wherein the plurality of error corrections comprise a first set of error corrections flipping m-bits of the first logical address, where m is a natural number.

19. The controller of claim 18 , wherein the plurality of error corrections further comprise a second set of error corrections flipping m+1 bits of the first logical address.

20. The controller of claim 15 , wherein the controller is further configured to process the first user data by moving the first user data to a second physical location of the plurality of physical locations, and

wherein the controller is further configured to update the mapping to associate the second logical address with a second physical address corresponding to the second physical location.

21. The controller of claim 1 , wherein the controller is further configured to process the first user data by determining the first user data is unrecoverable from the first physical location, and

wherein the controller is further configured to update the mapping to disassociate the second logical address from the first physical address.

Assignments (9)
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 039389 FRAME 0699 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058965/0553 →
RELEASE OF SECURITY INTEREST Recorded Aug 16, 2016
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 039444/0802 →
SECURITY AGREEMENT Recorded Jul 19, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039389/0699 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2015
From: LAM, JOHNNY A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 037253/0691 →