IP Library Granted Patent US 10,409,676
Granted Patent B1
US 10,409,676 · App. 15/899,948 · Granted Sep 10, 2019

SRAM bit-flip protection with reduced overhead

Inventors: Eran Sharon (Rishon Lezion, IL); Ariel Navon (Revava, IL); Shay Benisty (Beer Sheva, IL)
Assignee: Western Digital Technologies, Inc.
G06F11/1068G11C29/52H03M13/19G11C11/412
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,409,676
App. No.
15/899,948
Granted
Sep 10, 2019
Kind
B1
Abstract

Systems and methods for efficiently implementing data protection techniques that protect data stored in volatile and non-volatile memory devices from soft errors are described. The error correction overprovisioning for a plurality of memory banks may be reduced by implementing localized single-bit error parity to detect single-bit errors within each memory bank of the plurality of memory banks and then sharing a single-error correcting parity or a single-error correcting and double-error detecting parity (SECDEC) over multiple memory banks or over all of the plurality of memory banks. The single-error correcting code (e.g., a Hamming code) may be generated and shared over the plurality of memory banks such that the single-error correcting code may correct single-bit errors across multiple sets of data stored within the plurality of memory banks that correspond with a particular line or row across all of the plurality of memory banks.

Claims (56)

1. An apparatus, comprising:

a plurality of memory banks including a first memory bank and a second memory bank;

a shared memory bank configured to store a set of shared parity check bits for data stored within the plurality of memory banks; and

one or more control circuits configured to acquire a first set of data to be written to memory cells corresponding with a particular line within the first memory bank, the one or more control circuits configured to detect that other data was previously written to memory cells corresponding with the particular line within the second memory bank and read the set of shared parity check bits from a location within the shared memory bank corresponding with the particular line in response to detection that the other data was previously written to memory cells corresponding with the particular line within the second memory bank different from the first memory bank, the one or more control circuits configured to update the set of shared parity check bits based on data differences between the first set of data and a second set of data previously written to the memory cells corresponding with the particular line within the first memory bank and generate a local parity bit using the first set of data, the one or more control circuits configured to write the local parity bit and the first set of data to the memory cells corresponding with the particular line within the first memory bank and write the updated set of shared parity check bits to the location within the shared memory bank corresponding with the particular line.

2. The apparatus of claim 1 , wherein:

the set of shared parity check bits were generated using the second set of data and the other data that was stored using the memory cells corresponding with the particular line within the second memory bank prior to being updated.

3. The apparatus of claim 1 , wherein:

the set of shared parity check bits corresponds with a single-error correcting code.

4. The apparatus of claim 1 , wherein:

the set of shared parity check bits corresponds with a Hamming code.

5. The apparatus of claim 1 , wherein:

the set of shared parity check bits corresponds with a single-error correcting and double-error detecting code.

6. The apparatus of claim 1 , wherein:

the plurality of memory banks is arranged on a first integrated circuit; and

the shared memory bank is arranged on the first integrated circuit.

7. The apparatus of claim 6 , wherein:

the first integrated circuit includes a non-volatile memory that is monolithically formed in one or more physical levels of memory cells having active areas disposed above a silicon substrate.

8. The apparatus of claim 1 , wherein:

the plurality of memory banks is arranged on a first integrated circuit; and

the shared memory bank is arranged on a second integrated circuit different from the first integrated circuit.

9. The apparatus of claim 1 , wherein:

the first memory bank comprises an SRAM memory bank.

10. The apparatus of claim 1 , wherein:

the local parity bit comprises an even parity bit.

11. A method, comprising:

acquiring a first set of data to be written to memory cells corresponding with a particular line within a first memory bank of a plurality of memory banks;

detecting that a third set of data was previously written to memory cells corresponding with the particular line within a second memory bank of the plurality of memory banks;

reading a set of shared parity check bits from a location within a shared memory bank corresponding with the particular line that extends across the plurality of memory banks in response to detecting that the third set of data was previously written to the memory cells corresponding with the particular line within the second memory bank different from the first memory bank;

reading a second set of data previously written to the memory cells corresponding with the particular line within the first memory bank;

updating the set of shared parity check bits based on data differences between the first set of data and the second set of data previously written to the memory cells corresponding with the particular line within the first memory bank;

generating a local parity bit using the first set of data;

writing the local parity bit and the first set of data to the memory cells corresponding with the particular line within the first memory bank; and

writing the updated set of shared parity check bits to the location within the shared memory bank corresponding with the particular line.

12. The method of claim 11 , further comprising:

generating the set of shared parity check bits using the second set of data and the third set of data prior to acquiring the first set of data to be written to the memory cells corresponding with the particular line within the first memory bank.

13. The method of claim 11 , wherein:

the set of shared parity check bits corresponds with a single-error correcting code.

14. The method of claim 11 , wherein:

the set of shared parity check bits corresponds with a Hamming code.

15. The method of claim 11 , wherein:

the set of shared parity check bits corresponds with a single-error correcting and double-error detecting code.

16. The method of claim 11 , wherein:

the plurality of memory banks is arranged on a first integrated circuit; and

the shared memory bank is arranged on the first integrated circuit.

17. The method of claim 11 , wherein:

the plurality of memory banks is arranged on a first integrated circuit; and

the shared memory bank is arranged on a second integrated circuit different from the first integrated circuit.

18. The method of claim 11 , wherein:

the first memory bank comprises an SRAM memory bank.

19. The method of claim 11 , wherein:

the local parity bit comprises an even parity bit.

20. An apparatus, comprising:

a plurality of memory banks including a first memory bank and a second memory bank;

means for storing a set of shared parity check bits within a shared memory bank at a location within the shared memory bank corresponding with a particular line that extends across the plurality of memory banks;

means for detecting that a third set of data was written to memory cells corresponding with the particular line within the second memory bank; and

a memory controller configured to generate the set of shared parity check bits using the third set of data and acquire a first set of data to be written to memory cells corresponding with the particular line within the first memory bank, the memory controller configured to read the set of shared parity check bits from the location within the shared memory bank corresponding with the particular line in response to detection that the third set of data was previously written to the memory cells corresponding with the particular line within the second memory bank different from the first memory bank and update the set of shared parity check bits based on a data difference between the first set of data and a second set of data that was previously written to the memory cells corresponding with the particular line within the first memory bank, the memory controller configured to generate a local parity bit using the first set of data and write the local parity bit to the memory cells corresponding with the particular line within the first memory bank, the memory controller configured to write the first set of data to the memory cells corresponding with the particular line within the first memory bank and write the updated set of shared parity check bits to the means for storing the set of shared parity check bits.

Assignments (10)
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 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/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 - 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 Feb 20, 2018
From: SHARON, ERAN; NAVON, ARIEL; BENISTY, SHAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 044981/0729 →