IP Library Granted Patent US 8,996,955
Granted Patent B2
US 8,996,955 · App. 13/649,007 · Granted Mar 31, 2015

Techniques for storing data in stuck and unstable memory cells

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,996,955
App. No.
13/649,007
Granted
Mar 31, 2015
Kind
B2
Abstract

A data storage system includes a memory circuit and a control circuit. The control circuit is operable to receive data bits provided for storage in memory cells of the memory circuit. The control circuit is operable to compare each of the data bits provided for storage in a corresponding one of the memory cells having a stuck-at fault value to the stuck-at fault value. The control circuit is operable to generate encoded data bits by inverting each of the data bits having a different value than the stuck-at fault value of the corresponding one of the memory cells and by maintaining a digital value of each of the data bits having the stuck-at fault value of the corresponding one of the memory cells. The control circuit is operable to prevent any of the data bits from being stored in the memory cells determined to have unstable values. The control circuit is operable to generate redundant bits that indicate at least one operation to perform on the encoded data bits to regenerate the data bits.

Claims (33)

1. A data storage system comprising:

a memory circuit; and

a control circuit to receive data bits provided for storage in memory cells of the memory circuit,

wherein the control circuit compares each of the data bits provided for storage in a corresponding one of the memory cells having a stuck-at fault value to the stuck-at fault value, wherein the control circuit generates encoded data bits by inverting each of the data bits having a different value than the stuck-at fault value of the corresponding one of the memory cells and by maintaining a digital value of each of the data bits having the stuck-at fault value of the corresponding one of the memory cells,

wherein the control circuit prevents any of the data bits from being stored in the memory cells determined to have unstable values, and wherein the control circuit generates redundant bits that indicate at least one operation to perform on the encoded data bits to regenerate the data bits.

2. The data storage system of claim 1 , wherein the control circuit generates a first base vector that indicates whether to invert at least one of the encoded data bits to regenerate one of the data bits, wherein the control circuit generates a first number of repetitions to apply the first base vector to the encoded data bits to regenerate a first subset of the data bits, and wherein the redundant bits indicate the first base vector and the first number of repetitions.

3. The data storage system of claim 2 , wherein the control circuit generates a second base vector that indicates whether to invert at least two of the encoded data bits to regenerate a second subset of the data bits, wherein the control circuit generates a second number of repetitions to apply the second base vector to the encoded data bits to regenerate a third subset of the data bits, and wherein the redundant bits further indicate the second base vector and the second number of repetitions.

4. The data storage system of claim 2 , wherein the control circuit generates a dash bit in the redundant bits that indicates a number of the redundant bits indicating the first number of repetitions, and wherein the control circuit inverts at least one of the data bits that is provided for storage in a corresponding one of the memory cells not having a stuck-at fault value to generate a corresponding one of the encoded data bits.

5. The data storage system of claim 1 , wherein the control circuit provides at least one of the data bits as one of the redundant bits in response to the at least one of the data bits being provided for storage in one of the memory cells having an unstable value.

6. The data storage system of claim 1 , wherein the control circuit generates repetition bits and discontinuous pointer bits in the redundant bits, wherein the encoded data bits comprise discontinuous segments, wherein the repetition bits indicate a number of repetitions to apply a base vector within each of the discontinuous segments to regenerate a subset of the data bits, and wherein the discontinuous pointer bits indicate a number of the encoded data bits between a first bit in each consecutive pair of the discontinuous segments of the encoded data bits.

7. The data storage system of claim 1 , wherein the control circuit locates a longest sequence of stuck-at fault values accommodated by applying repetitions of a base vector to the data bits, and wherein the control circuit determines a largest number of repetitions of the base vector to apply to the data bits to generate a subset of the encoded data bits that accommodate the longest sequence of stuck-at fault values.

8. The data storage system of claim 1 , wherein the control circuit encodes the redundant bits using an error correction code.

9. The data storage system of claim 1 , wherein the redundant bits and the encoded data bits are stored in the memory circuit, and wherein the encoded data bits are stored in the memory cells.

10. The data storage system of claim 1 , wherein the encoded data bits are stored in the memory cells, and wherein the redundant bits are stored in a different memory circuit than the encoded data bits.

11. The data storage system of claim 1 , wherein the control circuit decodes the encoded data bits received from the memory cells to regenerate the data bits using the redundant bits, and wherein the redundant bits indicate which of the encoded data bits are to be maintained at the same digital values and which of the encoded data bits are to be inverted when decoding the encoded data bits to regenerate the data bits.

12. A method comprising:

receiving data bits that are provided for storage in memory cells of a memory circuit;

comparing each of the data bits provided for storage in a corresponding one of the memory cells having a stuck-at fault to a value of the stuck-at fault;

generating encoded data bits by inverting each of the data bits having a different value than the value of the stuck-at fault of the corresponding one of the memory cells and by maintaining a value of each of the data bits having the value of the stuck-at fault of the corresponding one of the memory cells;

preventing any of the data bits from being stored in any of the memory cells determined to have unstable values; and

generating redundant bits that indicate at least one operation to perform on the encoded data bits to regenerate the data bits.

13. The method of claim 12 , wherein generating encoded data bits further comprises generating a first base vector that indicates whether to invert at least one of the encoded data bits to regenerate one of the data bits, and generating a first number of repetitions to apply the first base vector to the encoded data bits to regenerate a first subset of the data bits, and wherein the redundant bits indicate the first base vector and the first number of repetitions.

14. The method of claim 13 , wherein generating encoded data bits further comprises generating a second base vector that indicates whether to invert at least two of the encoded data bits to regenerate a second subset of the data bits, and generating a second number of repetitions to apply the second base vector to the encoded data bits to regenerate a third subset of the data bits, and wherein the redundant bits further indicate the second base vector and the second number of repetitions.

15. The method of claim 13 , wherein generating encoded data bits further comprises generating a dash bit in the redundant bits that indicates a number of the redundant bits indicating the first number of repetitions.

16. The method of claim 12 , wherein generating encoded data bits further comprises generating an unstable bit and at least one of the data bits in the redundant bits in response to the at least one of the data bits being provided for storage in one of the memory cells having an unstable value.

17. A data storage system comprising:

a memory circuit; and

a control circuit to receive data bits provided for storage in memory cells of the memory circuit,

wherein if at least one of the data bits received by the control circuit is provided for storage in a corresponding one of the memory cells having a stuck-at fault value, the control circuit generates encoded data bits by inverting each of the data bits having a different value than the stuck-at fault value of the corresponding one of the memory cells and by maintaining a digital value of each of the data bits having the stuck-at fault value of the corresponding one of the memory cells,

wherein the control circuit prevents any of the data bits from being stored in the memory cells determined to have unstable values, and wherein the control circuit generates redundant bits that indicate an operation to perform on the encoded data bits to regenerate the data bits.

18. The data storage system of claim 17 , wherein the control circuit generates a first base vector that indicates whether to invert at least one of the encoded data bits to regenerate one of the data bits, wherein the control circuit generates a first number of repetitions to apply the first base vector to the encoded data bits to regenerate a first subset of the data bits, and wherein the redundant bits indicate the first base vector and the first number of repetitions.

19. The data storage system of claim 17 , wherein the control circuit provides one of the data bits as one of the redundant bits in response to the one of the data bits being provided for storage in one of the memory cells having an unstable value.

20. The data storage system of claim 17 , wherein the control circuit generates repetition bits and discontinuous pointer bits in the redundant bits, wherein the encoded data bits comprise discontinuous segments, wherein the repetition bits indicate a number of repetitions to apply a base vector within each of the discontinuous segments to regenerate a subset of the data bits, and wherein the discontinuous pointer bits indicate a number of the encoded data bits between a first bit in each consecutive pair of the discontinuous segments of the encoded data bits.

Assignments (11)
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 Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040826/0327 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2012
From: FRANCA-NETO, LUIZ; GUYOT, CYRIL; MATEESCU, ROBERT
To: HGST NETHERLANDS B.V.
Reel/Frame 029107/0756 →