IP Library Granted Patent US 8,762,798
Granted Patent B2
US 8,762,798 · App. 13/678,416 · Granted Jun 24, 2014

Dynamic LDPC code rate solution

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,762,798
App. No.
13/678,416
Granted
Jun 24, 2014
Kind
B2
Abstract

The subject technology includes adjusting an error correcting code rate in a solid-state drive. A first plurality of memory operations are performed on a flash memory device of the solid-state drive using a first code rate. During operation of the drive, a controller monitors an operating condition associated with one or more memory units of the flash memory device for a trigger event. On the trigger event, the first code rate is adjusted in accordance with the operating condition to produce a second code rate, and a second plurality of memory operations is performed on the flash memory device using the second code rate.

Claims (52)

1. A method for adjusting a code rate in a solid-state drive, the method comprising:

storing host data in a first plurality of memory units of a flash memory device using a first code rate;

monitoring an operating condition associated with the flash memory device for a trigger event;

adjusting, on the trigger event, the first code rate in accordance with the operating condition to produce a second code rate; and

storing host data in a second plurality of memory units of the flash memory device using the second code rate.

2. The method of claim 1 , wherein the operating condition comprises a number of program/erase (P/E) cycles.

3. The method of claim 2 , wherein the trigger event comprises the number of P/E cycles satisfying a threshold number of P/E cycles.

4. The method of claim 2 , further comprising:

determining, on the trigger event, the second code rate by indexing a lookup table by a current range of P/E cycles.

5. The method of claim 1 , wherein the operating condition comprises an error rate.

6. The method of claim 5 , wherein the trigger event comprises the error rate satisfying a threshold error rate.

7. The method of claim 5 , further comprising:

determining, on the trigger event, the second code rate by indexing a lookup table by a current range of error rates.

8. The method of claim 1 , further comprising:

decoding host data from the first plurality of memory units at the first code rate; and

decoding host data from the second plurality of memory units at the second code rate.

9. The method of claim 1 , further comprising:

storing a code rate flag in connection with encoding host data for one or more respective memory units;

determining, in connection with reading one or more respective memory units, a decoding code rate based on the stored code rate flag for one or more respective memory units; and

decoding host data for one or more respective memory units based on the determined decoding code rate.

10. The method of claim 1 , wherein adjusting the first code rate comprises:

reducing the first code rate by an amount predetermined to sustain a raw read error rate associated with one or more memory blocks below a predetermined threshold for a predetermined number of P/E cycles.

11. The method of claim 1 , wherein the second code rate has a lower code rate value than the first code rate.

12. The method of claim 1 , wherein adjusting the first code rate modifies an amount of storage available for user data in future operations.

13. The method of claim 1 , wherein the code rate is a LDPC code rate.

14. A non-transitory machine-readable medium having instructions stored thereon that, when executed, cause a machine to perform a method for adjusting a code rate in a solid state drive, the method comprising:

receiving a first quantity of host data;

encoding, for storage in a first plurality of memory units, a first quantity of host data at a first code rate, the first code rate corresponding to a predetermined code rate value;

storing the encoded first quantity of host data in the first plurality of memory units;

monitoring one or more operating conditions associated with the one or more memory units for a trigger event;

adjusting, on a predetermined trigger event, the code rate value;

receiving a second quantity of host data;

encoding, for storage in a second plurality of memory units, a second quantity of host data at a second code rate; and

storing the encoded second quantity of host data in the second plurality of memory units.

15. The non-transitory machine readable medium of claim 14 , wherein adjusting the code rate value comprises:

adjusting the code rate value by an amount sufficient to reduce, below a predetermined threshold, a read error rate produced in connection with future memory operations.

16. The non-transitory machine readable medium of claim 14 , wherein the one or more operating conditions comprise an error rate or a number of program/erase cycles, and wherein the trigger event comprises a threshold error rate or threshold program/erase cycle.

17. The non-transitory machine readable medium of claim 14 , further comprising:

decoding host data from the first plurality of memory units at the first code rate; and

decoding host data from the second plurality of memory units at the second code rate.

18. The non-transitory machine readable medium of claim 14 , further comprising:

storing a code rate flag in connection with encoding host data for the one or more memory units;

determining, in connection with reading one or more respective memory units, a decoding code rate based on the stored code rate flag for one or more respective memory units; and

decoding host data from one or more respective memory units based on the determined decoding code rate.

19. The non-transitory machine readable medium of claim 14 , wherein the code rate is a LDPC code rate.

20. A system, comprising:

a flash controller;

one or more flash memory devices; and

one or more embedded memories associated with the controller, the memories having instructions stored thereon that, when executed, cause the flash controller to:

monitor one or more operating conditions associated with the one or more flash memory devices for one or more trigger events; and

adjust, on a predetermined trigger event, a LDPC code rate used in current memory operations performed by the flash controller by an amount sufficient to reduce, below a predetermined threshold, a read error rate produced in connection with future memory operations,

wherein host data is stored in a first plurality of memory units using a first code rate before the LDPC code rate is adjusted, and host data is stored in a second plurality of memory units using a second code rate after the LDPC code rate is adjusted.

Assignments (12)
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 - 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 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 16, 2012
From: HU, XINDE; BARNDT, RICHARD D.
To: STEC, INC.
Reel/Frame 029316/0227 →