IP Library Granted Patent US 10,445,199
Granted Patent B2
US 10,445,199 · App. 15/388,883 · Granted Oct 15, 2019

Bad page management in storage devices

Inventor: Kiran Kumar Gunnam (Milpitas, CA)
Assignee: Western Digital Technologies, Inc.
G06F11/2094G06F3/064G06F3/0619G06F3/0659G06F3/0665G06F3/0673
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 10,445,199
App. No.
15/388,883
Granted
Oct 15, 2019
Kind
B2
Abstract

The present disclosure generally relates to methods for managing bad pages in storage devices. When a page is bad or faulty, a spare page is used to store the data because the bad or faulty page is unreliable for data storage. When the time comes to read the data from the bad page or write data onto the page, there needs to be some direction to the spare page. The bad or faulty page may contain a pointer to direct to the location of the spare page or metadata containing directions to the location of the spare page. A hash function may be used to calculate that the stored data in the bad or faulty page is incorrect and, once decoded, provide direction to the spare page. By using pointers, metadata or hash functions, additional data tables are unnecessary and data storage is more efficient.

Claims (87)

1. A method, comprising:

receiving a request to read storage data from a storage page of a memory device, the storage page having a storage data and parity data;

reading the parity data from the storage page;

determining that the parity data indicates the storage page is faulty;

performing an error code correction decoding;

determining when the error code correction is a failure;

reading the storage data, wherein the storage data contains an embedded pointer;

decoding the storage data to determine a spare page location; and

reading data from the spare page location, wherein the parity data includes a logical value of “0” for all parity bits and an error code correction failure indicates a bad page.

2. The method of claim 1 , wherein the storage page contains ten die with each die having eight bytes.

3. The method of claim 2 , wherein one die contains the parity data.

4. The method of claim 3 , wherein one die contains ECC data.

5. A method, comprising:

receiving a request to read storage data from a storage page of a memory device, the storage page having the storage data and parity data;

reading the parity data from the storage page;

determining that the parity data indicates the storage page is faulty;

reading the storage data, wherein the storage data contains an embedded pointer;

decoding the storage data to determine a spare page location; and

reading data from the spare page location, wherein the storage page contains ten die with each die having eight bytes, wherein one die contains the parity data, and wherein the parity data includes a logical value of “0” for all parity bits.

6. A method, comprising:

receiving a request to read storage data from a storage page of a memory device, the storage page having the storage data and parity data;

reading the parity data from the storage page;

determining that the parity data indicates the storage page is faulty;

reading the storage data, wherein the storage data contains an embedded pointer;

decoding the storage data to determine a spare page location; and

reading data from the spare page location, wherein the parity data includes a logical value of “0” for all parity bits.

7. A computer system for storing and retrieving files, comprising:

a processor; and

a memory system storing instructions that, when executed by the processor, cause the computer system to:

receive a request to read storage data from a storage page of a memory device, the storage page having the storage data and parity data;

read the parity data from the storage page;

determine that the parity data indicates the storage page is faulty;

read the storage data, wherein the storage data contains an embedded pointer;

decode the storage data to determine a spare page location; and

read data from the spare page location wherein the storage page contains ten die with each die having eight bytes, wherein the parity data includes a logical value of “0” for all parity bits.

8. A computer system for storing and retrieving files, comprising:

a processor; and

a memory system storing instructions that, when executed by the processor, cause the computer system to:

receive a request to read storage data from a storage page of a memory device, the storage page having the storage data and parity data;

read the parity data from the storage page;

determine that the parity data indicates the storage page is faulty;

read the storage data, wherein the storage data contains an embedded pointer;

decode the storage data to determine a spare page location; and

read data from the spare page location, wherein the parity data includes a logical value of “0” for all parity bits.

9. A non-transitory computer readable storage medium, containing instructions that, when executed by a processor, cause a computer system to burn files after a read process has been completed, by performing the steps of:

receive a request to read storage data from a storage page of a memory device, the storage page having a storage data and parity data;

read the parity data from the storage page;

determine that the parity data indicates the storage page is faulty;

performing an error code correction decoding;

determining when the error code correction is a failure read the storage data, wherein the storage data contains an embedded pointer;

decode the storage data to determine a spare page location; and

read data from the spare page location, wherein the parity data includes a logical value of “0” for all parity bits and an error code correction failure indicates a bad page.

10. The non-transitory computer readable storage medium of claim 9 , wherein the storage page contains ten die with each die having eight bytes.

11. The non-transitory computer readable storage medium of claim 10 , wherein one die contains the parity data.

12. The non-transitory computer readable storage medium of claim 11 , wherein one die contains ECC data.

13. A non-transitory computer readable storage medium, containing instructions that, when executed by a processor, cause a computer system to burn files after a read process has been completed, by performing the steps of:

receive a request to read storage data from a storage page of a memory device, the storage page having the storage data and parity data;

read the parity data from the storage page;

determine that the parity data indicates the storage page is faulty;

read the storage data, wherein the storage data contains an embedded pointer;

decode the storage data to determine a spare page location; and

read data from the spare page location, wherein the storage page contains ten die with each die having eight bytes wherein one die contains the parity data, and wherein the parity data includes a logical value of “0” for all parity bits.

14. A non-transitory computer readable storage medium, containing instructions that, when executed by a processor, cause a computer system to burn files after a read process has been completed, by performing the steps of:

receive a request to read storage data from a storage page of a memory device, the storage page having the storage data and parity data;

read the parity data from the storage page;

determine that the parity data indicates the storage page is faulty;

read the storage data, wherein the storage data contains an embedded pointer;

decode the storage data to determine a spare page location; and

read data from the spare page location, wherein the parity data includes a logical value of “0” for all parity bits.

15. A device, comprising:

means for receiving a request to read storage data from storage means of a memory device;

means for reading parity data and storage data from a storage page;

means for conducting an error code correction for the storage page;

means for determining that a parity data indicates the storage page is faulty;

means for reading an embedded pointer from storage data;

means for decoding the storage data to determine a spare page location; and

means for reading data from the spare page location wherein the parity data includes a logical value of “0” for all parity bits and an error code correction failure indicates a bad page.

16. The device of claim 15 , wherein the storage means comprises a plurality of die.

17. The device of claim 16 , wherein one die contains the parity data.

18. The device of claim 17 , wherein one die contains ECC data.

19. A device, comprising:

means for receiving a request to read storage data from storage means of a memory device;

means for reading parity data and storage data from the storage means;

means for determining that the parity data indicates the storage means is faulty;

means for reading an embedded pointer from storage data;

means for decoding the storage data to determine a spare page location; and

means for reading data from the spare page location wherein the storage means comprises a plurality of die and wherein one die contains the parity data wherein one die contains ECC data wherein the parity data includes a logical value of “0” for all parity bits.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
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 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 Feb 8, 2017
From: GUNNAM, KIRAN KUMAR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 041207/0762 →
Continuity (1)
Related Publication 20180181476A1 · Jun 28, 2018