IP Library Granted Patent US 10,734,079
Granted Patent B1
US 10,734,079 · App. 16/415,923 · Granted Aug 4, 2020

Sub block mode read scrub design for non-volatile memory

Inventors: Srinivasan Seetharaman (Milpitas, CA); Sourabh Sankule (Bangalore, IN); Piyush Girish Sagdeo (Santa Clara, CA); Gautam Ashok Dusija (Burlingame, CA); Chris Nga Yee Yip (Saratoga, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G11C16/16G06F3/064G06F3/0679G06F9/5077G11C16/08G11C16/28G06F3/0604
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,734,079
App. No.
16/415,923
Granted
Aug 4, 2020
Kind
B1
Abstract

The disclosure relates in some aspects to a read scrub design for a non-volatile memory that includes a block comprising N wordlines partitioned into a first sub-block comprising a first subset of the N wordlines and a second sub-block comprising a second subset of the N wordlines different than the first subset. In some aspects, the disclosure relates to detecting a trigger event associated with a read command performed on the first sub-block. A target sub-block test is then performed in response to a detection of the trigger event to determine whether to add the first sub-block to a read scrub queue. If the first sub-block is added to the read scrub queue, a sister sub-block test is then performed to determine whether to add the second sub-block to the read scrub queue.

Claims (50)

1. A data storage apparatus, comprising:

a non-volatile memory, wherein the non-volatile memory device includes a block comprising N wordlines partitioned into a first sub-block and a second sub-block, and wherein the first sub-block comprises a first subset of the N wordlines and the second sub-block comprises a second subset of the N wordlines different than the first subset; and

a processor coupled to the non-volatile memory and configured to:

detect a trigger event associated with a read command performed on the first sub-block;

perform, in response to a detection of the trigger event, a target sub-block test to determine whether to add the first sub-block to a read scrub queue; and

perform, in response to the first sub-block being added to the read scrub queue, a sister sub-block test to determine whether to add the second sub-block to the read scrub queue.

2. The data storage apparatus of claim 1 , wherein the trigger event comprises a read error associated with the read command.

3. The data storage apparatus of claim 2 , wherein the processor is further configured to:

perform a determination of whether the read command is associated with at least one scrub trigger case listed in a dynamic read table; and

determine whether to add at least one of the first sub-block or the second sub-block to the read scrub queue based on the determination.

4. The data storage apparatus of claim 3 , wherein the dynamic read table comprises a corresponding scrub trigger threshold for the at least one scrub trigger case, and wherein the processor is further configured to add the at least one of the first sub-block or the second sub-block to the read scrub queue based on whether the corresponding scrub trigger threshold for the at least one scrub trigger case is exceeded.

5. The data storage apparatus of claim 1 , wherein the first sub-block and the second sub-block are separated by at least one dummy wordline, and wherein the at least one dummy wordline is configured to remain unprogrammed.

6. The data storage apparatus of claim 1 , wherein the trigger event is a threshold number of read commands exceeded.

7. The data storage apparatus of claim 6 , wherein the processor is further configured to identify the first sub-block as a target sub-block based on whether the read command corresponds to a wordline in the first sub-block or the second sub-block.

8. The data storage apparatus of claim 7 , wherein the processor is further configured to:

determine a wordline quality of the wordline and at least one neighboring wordline of the wordline;

compare the wordline quality of either the wordline or the at least one neighboring wordline to a scrub trigger threshold; and

perform the sister sub-block test in response to a determination that the wordline quality of either the wordline or the at least one neighboring wordline is below the scrub trigger threshold.

9. The data storage apparatus of claim 8 , wherein the processor is further configured to:

identify a sister sub-block wordline in the second sub-block having a worst wordline quality amongst all sub-block wordlines of the second sub-block; and

add the second sub-block to the read scrub queue based on whether the worst wordline quality is below the scrub trigger threshold.

10. A data storage method operable on a non-volatile memory, wherein the non-volatile memory includes a block comprising N wordlines partitioned into a first sub-block and a second sub-block, and wherein the first sub-block comprises a first subset of the N wordlines and the second sub-block comprises a second subset of the N wordlines different than the first subset, the data storage method comprising:

detecting a trigger event associated with a read command performed on the first sub-block;

performing, in response to a detection of the trigger event, a target sub-block test to determine whether to add the first sub-block to a read scrub queue; and

performing, in response to the first sub-block being added to the read scrub queue, a sister sub-block test to determine whether to add the second sub-block to the read scrub queue.

11. The data storage method of claim 10 , further comprising:

accessing a dynamic read table, wherein the dynamic read table includes aspects associated with at least one scrub trigger case; and

determining whether to add at least one of the first sub-block or the second sub-block to the read scrub queue based on a comparison of aspects associated with the read command and the aspects associated with the at least one scrub trigger case.

12. The data storage method of claim 11 , wherein the accessing comprises ascertaining a corresponding scrub trigger threshold of the at least one scrub trigger case, and wherein the determining of whether to add the at least one of the first sub-block or the second sub-block to the read scrub queue is based on whether the corresponding scrub trigger threshold for the at least one scrub trigger case is exceeded.

13. The data storage method of claim 12 , wherein the performing of the target sub-block test comprises:

identifying a target sub-block wordline in the first sub-block corresponding to the read command; and

performing a target sub-block comparison of aspects associated with the target sub-block wordline and the corresponding scrub trigger threshold for the at least one scrub trigger case, wherein a determination of whether to add the first sub-block to the read scrub queue is based on the target sub-block comparison.

14. The data storage method of claim 12 , wherein the performing of the sister sub-block test comprises:

identifying a sister sub-block wordline in the second sub-block having a worst wordline quality amongst all sub-block wordlines of the second sub-block; and

performing a sister sub-block comparison of aspects associated with the sister sub-block wordline and the corresponding scrub trigger threshold for the at least one scrub trigger case, wherein a determination of whether to add the second sub-block to the read scrub queue is based on the sister sub-block comparison.

15. The data storage method of claim 10 , further comprising:

determining a wordline quality of a target sub-block wordline in the first sub-block corresponding to the read command and at least one neighboring wordline of the target sub-block wordline;

comparing the wordline quality of either the target sub-block wordline or the at least one neighboring wordline to a scrub trigger threshold; and

performing the sister sub-block test in response to a determination that the wordline quality of either the wordline or the at least one neighboring wordline is below the scrub trigger threshold.

16. The data storage method of claim 15 , further comprising:

performing a subsequent wordline quality determination of whether a sister sub-block wordline quality of a wordline in the second sub-block is below the scrub trigger threshold; and

determining whether to add the second sub-block to the read scrub queue based on the subsequent wordline quality determination.

17. The data storage method of claim 16 , wherein the performing of the subsequent wordline quality determination is performed on a sister sub-block wordline in the second sub-block neighboring an unwritten sister sub-block wordline in the second sub-block having a worst wordline quality amongst all sub-block wordlines of the second sub-block.

18. A data storage apparatus, comprising:

a non-volatile memory, wherein the non-volatile memory includes a block comprising N wordlines partitioned into a first sub-block and a second sub-block, and wherein the first sub-block comprises a first subset of the N wordlines and the second sub-block comprises a second subset of the N wordlines different than the first subset;

means for detecting a trigger event associated with a read command performed on the first sub-block;

means for performing, in response to a detection of the trigger event, a target sub-block test to determine whether to add the first sub-block to a read scrub queue; and

means for performing, in response to the first sub-block being added to the read scrub queue, a sister sub-block test to determine whether to add the second sub-block to the read scrub queue.

19. The data storage apparatus of claim 18 , wherein the target sub-block test is based on whether the read command is associated with at least one scrub trigger case listed in a dynamic read table.

20. The data storage apparatus of claim 18 , wherein the target sub-block test is based on a periodic scan of the target sub-block triggered when a total number of read commands exceed a threshold number of read commands.

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 May 17, 2019
From: SEETHARAMAN, SRINIVASAN; SANKULE, SOURABH; SAGDEO, PIYUSH GIRISH; DUSIJA, GAUTAM ASHOK; YIP, CHRIS NGA YEE
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049215/0436 →
Cited By (2)
US 12,379,990 US 12,518,836