IP Library Granted Patent US 10,216,571
Granted Patent B2
US 10,216,571 · App. 15/469,384 · Granted Feb 26, 2019

System and methodology for error management within a shared non-volatile memory architecture using bloom filters

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,216,571
App. No.
15/469,384
Granted
Feb 26, 2019
Kind
B2
Abstract

Various aspects directed towards facilitating error management within a shared non-volatile memory (NVM) architecture are disclosed. Data is stored in an NVM, and error correction vector (ECV) information associated with the NVM is stored in an error tracking table (ETT) within one of a dynamic random access memory (DRAM) or a second NVM component. The ETT is then filtered with a Bloom filter to predict a subset of ETT entries that include a reporting of an error in the NVM. A parallel query of the NVM and the ETT is then performed, which includes a query of the NVM that yields a readout of the NVM, and a query of the ETT that is limited to a query of the subset of ETT entries predicted by the Bloom filter which yields a construction of an ECV corresponding to the readout of the NVM.

Claims (37)

1. A system, comprising:

a non-volatile memory (NVM) component configured to store data in an NVM array;

an error tracking table (ETT) component configured to store error correction vector (ECV) information associated with the NVM array, wherein the ETT component is within one of a dynamic random access memory (DRAM) or a second NVM component;

a controller configured to perform a parallel query of the NVM array and the ETT component, wherein the parallel query includes a query of the NVM array that yields a readout of the NVM array and a query of the ETT component that yields a construction of an ECV corresponding to the readout of the NVM array; and

at least one Bloom filter configured to predict at least one subset of ETT component entries in which at least one of the ETT component entries corresponds to a reporting of an error in the NVM array.

2. The system of claim 1 , wherein the query of the ETT component is limited to a query of the at least one subset of ETT component entries predicted by the at least one Bloom filter.

3. The system of claim 2 , wherein the ETT component is configured within the DRAM, and wherein the at least one Bloom filter is configured within the controller.

4. The system of claim 2 , wherein each of the at least one Bloom filter and the ETT component are configured within the DRAM.

5. The system of claim 2 , wherein each of the at least one Bloom filter and the ETT component are configured within the second NVM component.

6. The system of claim 2 , wherein the ETT component is configured within the second NVM component, and wherein the at least one Bloom filter is configured within the DRAM.

7. The system of claim 2 , wherein the readout of the NVM array comprises a readout of 4000 byte data pages.

8. The system of claim 7 , wherein the readout of the NVM array comprises a readout granularity of 64 bytes or 8 bytes.

9. The system of claim 8 , wherein the readout granularity is 64 bytes, and wherein the at least one Bloom filter comprises 8 Bloom filters.

10. The system of claim 1 , wherein the NVM is a shared NVM controllable by each of a plurality of processors.

11. A method, comprising:

storing data in a non-volatile memory (NVM) array;

storing error correction vector (ECV) information associated with the NVM array in an error tracking table (ETT);

filtering the ETT with at least one Bloom filter to predict at least one subset of ETT entries in which at least one of the ETT entries corresponds to a reporting of an error in the NVM array; and

performing a parallel query of the NVM array and the ETT, wherein the parallel query includes a query of the NVM array that yields a readout of the NVM array and a query of the ETT that yields a construction of an ECV corresponding to the readout of the NVM array, and wherein the query of the ETT is limited to a query of the at least one subset of ETT entries predicted by the at least one Bloom filter.

12. The method of claim 11 , wherein the storing of ECV information comprises storing the ECV information in an ETT within one of a dynamic random access memory (DRAM) or a second NVM component.

13. The method of claim 12 , wherein the storing of ECV information comprises storing the ECV information in an ETT within the DRAM, and wherein the filterning of the ETT comprises filtering the ETT with at least one Bloom filter within the controller.

14. The method of claim 12 , wherein the storing of ECV information comprises storing the ECV information in an ETT within the DRAM, and wherein the filterning of the ETT comprises filtering the ETT with at least one Bloom filter within the DRAM.

15. The method of claim 12 , wherein the storing of ECV information comprises storing the ECV information in an ETT within the second NVM component, and wherein the filterning of the ETT comprises filtering the ETT with at least one Bloom filter within the second NVM component.

16. The method of claim 12 , wherein the storing of ECV information comprises storing the ECV information in an ETT within the second NVM component, and wherein the filterning of the ETT comprises filtering the ETT with at least one Bloom filter within the DRAM.

17. The method of claim 11 , wherein the ETT includes a plurality of entries respectively corresponding to information associated with individual cells in the NVM array, and wherein each of the plurality of entries includes information corresponding to at least one of an offset, an error position, an error bit, or a usability flag.

18. The method of claim 11 , further comprising performing a wear leveling, wherein the wear leveling comprises moving data between cells of the NVM array at a granularity corresponding to one of a protection size of the ETT or a multiple of the protection size of the ETT.

19. The method of claim 18 , further comprising resetting a bit of the at least one Bloom filter in response to the wear leveling.

20. An apparatus, comprising:

means for storing data in a non-volatile memory (NVM) array;

means for storing error correction vector (ECV) information associated with the NVM array in an error tracking table (ETT);

means for filtering the ETT with at least one Bloom filter to predict at least one subset of ETT entries in which at least one of the ETT entries corresponds to a reporting of an error in the NVM array; and

means for performing a parallel query of the NVM array and the ETT, wherein the parallel query includes a query of the NVM array that yields a readout of the NVM array and a query of the ETT that yields a construction of an ECV corresponding to the readout of the NVM array, and wherein the query of the ETT is limited to a query of the at least one subset of ETT entries predicted by the at least one Bloom filter.

21. The apparatus of claim 20 , wherein the means for storing the ECV information comprises means for storing the ECV information in an ETT within one of a dynamic random access memory (DRAM) or a second NVM component.

22. The apparatus of claim 21 , wherein the means for storing the ECV information comprises means for storing the ECV information in an ETT within the DRAM, and wherein the means for filterning the ETT comprises means for filtering the ETT with at least one Bloom filter within the controller.

23. The apparatus of claim 21 , wherein the means for storing the ECV information comprises means for storing the ECV information in an ETT within the DRAM, and wherein the means for filterning the ETT comprises means for filtering the ETT with at least one Bloom filter within the DRAM.

24. The apparatus of claim 21 , wherein the means for storing the ECV information comprises means for storing the ECV information in an ETT within the second NVM component, and wherein the means for filterning the ETT comprises means for filtering the ETT with at least one Bloom filter within the second NVM component.

25. The apparatus of claim 21 , wherein the storing of ECV information comprises storing the ECV information in an ETT within the second NVM component, and wherein the filtering of the ETT comprises filtering the ETT with at least one Bloom filter within the DRAM.

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 - 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 Mar 24, 2017
From: FRANCA-NETO, LUIZ M.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 042093/0672 →