IP Library Granted Patent US 8,799,747
Granted Patent B2
US 8,799,747 · App. 12/793,131 · Granted Aug 5, 2014

Data hardening to compensate for loss of data retention characteristics in a non-volatile memory

Inventors: Ryan James Goss (Lakeville, MN); David Seekins (Shakopee, MN); Mark Allen Gaertner (Vadnais Heights, MN); Kevin Gomez (Eden Prairie, MN)
Assignee: Seagate Technology LLC
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 8,799,747
App. No.
12/793,131
Granted
Aug 5, 2014
Kind
B2
Abstract

Method and apparatus for enhancing reliability and integrity of data stored in a non-volatile memory, such as in a solid-state drive (SSD) having an array of flash memory cells. In accordance with various embodiments, a controller is adapted to harden data stored in a first location of said memory in relation to a detected loss of retention characteristics of the first location. In some embodiments, the data are hardened by storing redundancy information associated with said data in a second location of said memory. The redundancy information can be a redundant set of the data or higher level error correct codes (ECC). The hardened data can be recovered to the host during a read operation by accessing the data stored in both the first and second locations.

Claims (24)

1. An apparatus comprising: a non-volatile memory and a controller adapted to direct storage of data in a first location of the non-volatile memory, to harden the data stored in the first location responsive to a wear indication value indicative of a wear history associated with the first location by generating redundancy information associated with the data responsive to the wear indication value and storing the redundancy information associated with the data in a different, second location of the non-volatile memory, and to perform a read operation by directing concurrent retrieval of the data from the first location and the redundancy information from the second location, and by using the redundancy information retrieved from the second location to correct at least one read error detected in the data retrieved from the first location to generate corrected data, in which the data stored in the first location comprises user data and at least one error correction code (ECC) adapted to detect and correct an error in said user data during readback thereof, and the at least one read error detected in the data is uncorrected by use of the at least one ECC.

2. The apparatus of claim 1 , in which the wear indication value identifies a total accumulated number of accesses carried out to the first location, and the controller is further adapted to transfer the corrected data.

3. The apparatus of claim 1 , in which the at least one error correction code is characterized as at least one ECC of a first type of ECC adapted to detect and correct an error in said user data during readback thereof, and the controller hardens said data by writing the redundancy information in the second location comprising at least one error correction code of a different, second type of ECC adapted to detect and correct an error in said data stored in the first block.

4. The apparatus of claim 1 , in which the first location is in a first erasure block of a flash memory array comprising a plurality of addressable pages of memory configured to be concurrently erased during an erase operation, and in which the second location is in a different, second erasure block of the flash memory array.

5. The apparatus of claim 1 , in which the at least one ECC is characterized as a first type of error correction code appended to the data stored in the first location and the redundancy information comprises a second type of ECC generated to detect and correct errors in the data stored in the first location and the first type of ECC, and the first type of ECC is different than the second type of ECC.

6. The apparatus of claim 1 , in which the controller generates a first wear indication (WI) value for the first location in relation to an accumulated count of access operations upon the first location and a second WI value for a second location in relation to an accumulated count of access operations upon the second location, compares the first WI value to the second WI value, and selects the second location responsive to the second WI value being less than the first WI value.

7. The apparatus of claim 6 , in which the respective first and second WI values are further generated in relation to an operational parameter associated with the respective first and second blocks.

8. The apparatus of claim 1 , in which the controller further operates to harden the data stored in the first location responsive to an indication signal supplied by a host to harden said data.

9. The apparatus of claim 1 , in which the controller generates the wear indication (WI) value and proceeds to generate and store the redundancy information in the second location responsive to the wear indication value exceeding a predetermined wear threshold, wherein the redundancy information is not stored responsive to the wear indication value not exceeding said threshold.

10. An apparatus comprising: a solid-state drive (SSD) having a non-volatile array of memory cells arranged into a plurality of erasure blocks, and a controller adapted to harden user data supplied by a host for storage in said array by storing said user data in a first erasure block having a first wear indication (WI) value indicative of a relatively worn state for said block, and by generating redundancy information to correct at least one error in said user data responsive to the first WI value and storing the redundancy information in a second erasure block, wherein the controller is further adapted to subsequently transfer the user data to a host device by concurrently retrieving the user data from the first location and the redundancy information from the second location, and by using the retrieved redundancy information to correct an error detected in the retrieved user data, in which the error detected in the retrieved user data is uncorrected by application of an error correction code (ECC) adapted to detect and correct at least one error in said user data during readback thereof.

11. The apparatus of claim 10 , in which the controller is further adapted responsive to a request by the host to retrieve said user data by outputting a sequence of bits from the first erasure block to a local cache memory and applying the error correction code thereto to detect and correct up to a selected number of errors, the controller further using the redundancy information to correct any uncorrectable errors in said output sequence of bits to provide corrected output data.

12. The apparatus of claim 10 , in which the second erasure block has a second WI value indicative of a relatively less worn state of the second erasure block, and the controller stores said redundancy information in the second erasure block responsive to a comparison of the first and second WI values.

13. A method comprising:

storing data in a first location of a non-volatile memory as a plurality of successive sectors of user data and at least one error correction code (ECC) adapted to detect and correct at least one error in said user data during a subsequent read operation;

identifying a wear indication value indicating a total number of access operations upon the first location;

hardening said stored data responsive to the wear indication value by generating redundancy information associated with the stored data responsive to the wear indication value and storing the redundancy information associated with the stored data in a different, second location of the non-volatile memory; and

performing a read operation to transfer the data in the first location to a host by retrieving the data from in the first location and the redundancy information from the second location and by using the redundancy information to correct at least one read error detected in the data retrieved from the first location, in which the at least one read error detected in the data is uncorrected by use of the at least one ECC.

14. The method of claim 13 , wherein the first location is disposed in a first erasure block and the second location is disposed in a different, second erasure block with a WI value less than the WI value of the first erasure block.

15. The method of claim 14 , wherein the WI value of the first location is generated in relation to an accumulated total number of erasure operations that have been carried out upon the first location.

16. The method of claim 13 , in which the at least one ECC is characterized as an error correction code of a first type of ECC adapted to detect and correct at least one error in said user data during a subsequent read operation, and in which the hardening step comprises generating and storing at least one additional ECC of a different second type of ECC in the second location of the memory adapted to detect and correct at least one error in the data stored in the first location of said memory.

17. The method of claim 13 , in which the performing a read operation comprises using the redundancy information from the second location to correct at least one bit error in the data retrieved from the first location to generate corrected data, and transferring the corrected data to the host.

18. The method of claim 13 , in which the first location is characterized as a first erasure block of a flash memory array comprising a plurality of addressable pages of memory with each page adapted to be concurrently written during a write operation and concurrently read during a read operation, the data stored in the first block comprises data stored to a selected page thereof, and the redundancy information comprises a redundant copy of said page of data in a second erasure block, wherein data from both the first and second erasure blocks are retrieved during a read operation to recover said hardened data to a host.

19. The method of claim 13 , in which the at least ECC is characterized as a first type of error correction code and the redundancy information stored during the hardening step comprises a second type of ECC generated to detect and correct errors in the data stored in the first location and the first type of ECC, and the first type of ECC is different than the second type of ECC.

20. The method of claim 13 , in which the redundancy information is stored in the second location of the memory using a first voltage profile adapted for normal access operations upon relatively less worn locations of the memory, and the data are stored in the first location using a second voltage profile adapted for access operations upon relatively more worn locations, the second voltage profile having at least a selected one of a longer duration or a lower magnitude than the first voltage profile to reduce stress upon the first location.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Jul 23, 2025
From: THE BANK OF NOVA SCOTIA
To: SEAGATE TECHNOLOGY PUBLIC LIMITED COMPANY; SEAGATE TECHNOLOGY; SEAGATE TECHNOLOGY HDD HOLDINGS; I365 INC.; SEAGATE TECHNOLOGY LLC; SEAGATE TECHNOLOGY INTERNATIONAL; SEAGATE HDD CAYMAN; SEAGATE TECHNOLOGY (US) HOLDINGS, INC.
Reel/Frame 072193/0001 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2025
From: THE BANK OF NOVA SCOTIA
To: SEAGATE TECHNOLOGY US HOLDINGS, INC.; EVAULT, INC. (F/K/A I365 INC.); SEAGATE TECHNOLOGY LLC
Reel/Frame 070363/0903 →
RELEASE OF SECURITY INTEREST Recorded Jul 23, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: SEAGATE TECHNOLOGY LLC; EVAULT INC
Reel/Frame 068457/0076 →
RELEASE OF SECURITY INTEREST Recorded May 20, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: SEAGATE TECHNOLOGY LLC; EVAULT, INC. (F/K/A I365 INC.); SEAGATE TECHNOLOGY US HOLDINGS, INC.
Reel/Frame 067471/0955 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 15, 2012
From: SEAGATE TECHNOLOGY LLC; EVAULT, INC. (F/K/A I365 INC.); SEAGATE TECHNOLOGY US HOLDINGS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 029253/0585 →
SECURITY AGREEMENT Recorded Oct 15, 2012
From: SEAGATE TECHNOLOGY LLC; EVAULT, INC. (F/K/A I365 INC.); SEAGATE TECHNOLOGY US HOLDINGS, INC.
To: THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT
Reel/Frame 029127/0527 →
SECURITY AGREEMENT Recorded Mar 24, 2011
From: SEAGATE TECHNOLOGY LLC
To: THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT
Reel/Frame 026010/0350 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2010
From: GOSS, RYAN JAMES; SEEKINS, DAVID; GAERTNER, MARK ALLEN; GOMEZ, KEVIN
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 024479/0493 →
Continuity (1)
Related Publication 20110302477A1 · Dec 8, 2011