IP Library Granted Patent US 7,743,277
Granted Patent B2
US 7,743,277 · App. 11/352,654 · Granted Jun 22, 2010

System and method for detecting and reducing data corruption in a storage device

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 7,743,277
App. No.
11/352,654
Granted
Jun 22, 2010
Kind
B2
Abstract

A data storage system using flash storage maintains a status indicator corresponding to data written into the flash storage. The status indictor of the data indicates whether a disruption, such as a power disruption or a device disconnection, occurred when the data was being written into the flash storage. The data storage system determines whether the data may be corrupted based on one or more of the status indictors. The data storage system may make this determination at a selected time or after a power-up of the data storage system. If the data is determined to possibly be corrupted, the data storage system may optionally discard the corrupted data from the flash storage or flag the corrupted data for future removal.

Claims (34)

1. A data storage system comprising:

a data memory configured to receive a data block comprising at least one data unit; and

a controller coupled to the data memory and configured to write at least one data unit of the data block into a flash storage, the controller further configured to set a status indicator in the data memory for each data unit of the data block written into the flash storage indicating whether a power disruption occurs in the data storage system when the data unit is written into the flash storage,

wherein, while writing the at least one data unit of the data block into the flash storage, the controller is further configured to maintain a first pointer identifying a current data unit of the data block to be written into the flash storage and a second pointer identifying a sector of the flash storage into which the current data unit is to be written.

2. The data storage system of claim 1 , wherein the controller is further configured to determine whether the data block in the flash storage is corrupted based on at least one status indictor.

3. The data storage system of claim 1 , wherein the status indictor for a first data unit of the data block comprises a start indicator indicating the first data unit is to be written into the flash storage.

4. The data storage system of claim 3 , wherein the status indicator for the first data unit comprises an end indicator indicating the first data unit is written into the flash storage without a power disruption occurring in the data storage system.

5. The data storage system of claim 1 , further comprising a data buffer coupled to the controller, the controller further configured to store the data block into the data buffer.

6. The data storage system of claim 1 , further comprising an input buffer coupled to the controller, the input buffer configured to receive the data block.

7. The data storage system of claim 1 , wherein at least a portion of the data memory is a non-volatile memory.

8. The data storage system of claim 1 , wherein the controller is further configured to respond to a power-up of the data storage system by determining whether the data block is corrupted based on at least one status indictor.

9. The data storage system of claim 8 , wherein the controller is further configured to discard each data unit of the data block written into the flash storage if the data block is determined to be corrupted.

10. The data storage system of claim 8 , wherein the controller is further configured to discard each data unit of the data block written into the flash storage by erasing each data unit of the data block written into the flash storage.

11. The data storage system of claim 1 , wherein the power disruption is a power loss occurring in the data storage system.

12. A method comprising:

receiving a data block comprising at least one data unit;

writing at least one data unit of the data block into a flash storage;

setting a status indicator for each data unit of the data block written into the flash storage indicating whether a power disruption occurs in a data storage system containing the flash storage when the data unit is written into the flash storage;

maintaining a first pointer identifying a current data unit of the data block to be written into the flash storage, while writing the at least one data unit of the data block into the flash storage; and

maintaining a second pointer identifying a sector of the flash storage into which the current data unit is to be written, while writing the at least one data unit of the data block into the flash storage.

13. The method of claim 12 , further comprising determining whether the data block is corrupted based on at least one status indictor.

14. The method of claim 12 , wherein the status indicator for a first data unit of the data block comprises a start indicator indicating the first data unit is to be written into the flash storage.

15. The method of claim 14 , wherein the status indictor for the first data unit comprises an end indicator indicating the first data unit is written into the flash storage without a power disruption occurring in the data storage system.

16. The method of claim 12 , further comprising responding to a power-up of the data storage system by determining whether the data block is corrupted based on the at least one status indictor.

17. The method of claim 16 , further comprising discarding each data unit of the data block written into the flash storage if the data block is determined to be corrupted.

18. The method of claim 17 , wherein discarding each data unit of the data block written in the flash storage comprises erasing the data block in the flash storage.

19. The method of claim 12 , wherein the power disruption is a power loss occurring in the data storage system.

20. A data storage system comprising:

means for receiving a data block comprising at least one data unit;

means for writing at least one data unit of the data block into a flash storage;

means for setting a status indicator for each data unit written into the flash storage indicating whether a power disruption occurs in the data storage system when the data unit is written into the flash storage;

means for maintaining a first pointer identifying a current data unit of the data block to be written into the flash storage, while writing the at least one data unit of the data block into the flash storage;

means for maintaining a second pointer identifying a sector of the flash storage into which the current data unit is to be written, while writing the at least one data unit of the data block into the flash storage; and

means for determining whether the data block is corrupted based on at least one status indicator.

Assignments (13)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2018
From: HGST TECHNOLOGIES SANTA ANA, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046174/0446 →
CHANGE OF NAME Recorded Jul 1, 2015
From: STEC, INC.
To: HGST TECHNOLOGIES SANTA ANA, INC.
Reel/Frame 036042/0390 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2008
From: TORABI, HOOSHMAND; WU, CHIEN-HUNG
To: SIMPLETECH, INC.
Reel/Frame 021812/0751 →
CHANGE OF NAME Recorded Nov 7, 2008
From: SIMPLETECH, INC.
To: STEC, INC.
Reel/Frame 021806/0604 →