IP Library Granted Patent US 12,505,036
Granted Patent B1
US 12,505,036 · App. 18/925,222 · Granted Dec 23, 2025

Targeted enhanced post-write read

Inventors: Pradeep Kumar N (Bangalore, IN); Lovish Singla (Bangalore, IN)
Assignee: Sandisk Technologies, Inc.
G06F12/0246
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 12,505,036
App. No.
18/925,222
Granted
Dec 23, 2025
Kind
B1
Abstract

Examples include a data storage device controller with one or more electronic processors configured to receive a write command that includes host data to be written to a memory, and service the write command by controlling the memory to write the host data to a primary update block of the memory and a secondary update block of the memory. The one or more electronic processors perform a first targeted enhanced post-write read (EPWR) operation on the primary update block by identifying one or more valid data regions of the primary update block, selectively performing EPWR on the one or more valid data regions of the primary update block, and in response to determining, based on a result of the EPWR performed on the one or more valid data regions, that the one or more valid data regions do not include an uncorrectable error, releasing the secondary update block.

Claims (64)

1 . A data storage device controller, comprising:

a memory; and

one or more processors communicatively connected to the memory, the one or more processors configured to:

receive a write command from a host device, the write command including host data to be written to the memory,

service the write command by controlling the memory to write the host data to a primary update block of the memory and a secondary update block of the memory,

perform a first targeted enhanced post-write read (EPWR) operation on the primary update block by:

identifying one or more valid data regions of the primary update block,

selectively performing EPWR on the one or more valid data regions of the primary update block, and

in response to determining, based on a result of the EPWR performed on the one or more valid data regions, that the one or more valid data regions do not include an uncorrectable error, releasing the secondary update block,

wherein each valid data region of the one or more valid data regions is a data region of a predetermined size in the primary update block that includes at least one fragment of valid data.

2 . The data storage device controller of claim 1 , wherein the one or more processors are further configured to, in response to determining, based on a result of the EPWR performed on the one or more valid data regions, that the one or more valid data regions include an uncorrectable error, update the L2P table to point to a location of the secondary update block.

3 . The data storage device controller of claim 1 , wherein each valid data region is a physical page of data, a metapage of data, a string of data, or a wordline of data.

4 . The data storage device controller of claim 1 , wherein the one or more processors are further configured to:

in response to performing the first targeted EPWR operation on the primary update block, perform a second targeted EPWR operation on the primary update block by

identifying one or more invalid data regions of the primary update block, and

selectively performing EPWR on the one or more invalid data regions of the primary update block,

wherein each invalid data region of the one or more invalid data regions is a data region of the predetermined size in the primary update block that does not include any valid data.

5 . The data storage device controller of claim 4 , wherein the one or more processors are further configured to:

in response to determining, based on a result of the EPWR performed on the one or more invalid data regions of the primary update block, that the one or more invalid data regions include an uncorrectable error, increment a grown bad block (GBB) count based on a detected number of uncorrectable errors in the primary update block,

determine whether the GBB count exceeds a threshold, and

in response to determining that the GBB count exceeds the threshold, retire the primary update block from metablock formation.

6 . The data storage device controller of claim 4 , wherein the one or more processors are configured to perform the second targeted EPWR operation on the primary update block as a background process.

7 . The data storage device controller of claim 6 , wherein the background process is a garbage collection process.

8 . The data storage device controller of claim 4 , wherein the one or more processors are further configured to, in response to performing the first targeted EPWR operation on the primary update block, add the primary update block to a queue of blocks to perform the second targeted EPWR operation.

9 . The data storage device controller of claim 1 , wherein the one or more processors are further configured to:

generate a bitmap for the primary update block, the bitmap including, for each data region of the predetermined size in the primary update block, one bit selectively indicating a validity or invalidity of the data region, and

identify the one or more valid data regions of the primary update block based on the bitmap.

10 . The data storage device controller of claim 9 , wherein the one or more processors are further configured to store the bitmap is stored in a master index page (MIP) associated with the memory.

11 . The data storage device controller of claim 1 , wherein identifying the one or more valid data regions of the primary update block includes generating a run-length encoding sequence indicating validity or invalidity of each data region of the predetermined size in the primary update block.

12 . A method, comprising:

receiving a write command from an external electronic device, the write command including host data to be written to a memory;

servicing the write command by controlling the memory to write the host data to a primary update block of the memory and a secondary update block of the memory;

performing a first targeted enhanced post-write read (EPWR) operation on the primary update block by

identifying one or more valid data regions of the primary update block,

selectively performing EPWR on the one or more valid data regions of the primary update block, and

in response to determining, based on a result of the EPWR performed on the one or more valid data regions, that the one or more valid data regions do not include an uncorrectable error, releasing the secondary update block,

wherein each valid data region of the one or more valid data regions is a data region of a predetermined size in the primary update block that includes at least one fragment of valid data.

13 . The method of claim 12 , further comprising:

in response to determining, based on a result of the EPWR performed on the one or more valid data regions, that the one or more valid data regions include an uncorrectable error, updating the L2P table to point to a location of the secondary update block.

14 . The method of claim 12 , wherein each valid data region is a physical page of data, a metapage of data, a string of data, or a wordline of data.

15 . The method of claim 12 , further comprising:

in response to performing the first targeted EPWR operation on the primary update block, performing a second targeted EPWR operation on the primary update block by

identifying one or more invalid data regions of the primary update block, and

selectively performing EPWR on the one or more invalid data regions of the primary update block,

wherein each invalid data region of the one or more invalid data regions is a data region of the predetermined size in the primary update block that does not include any valid data.

16 . The method of claim 15 , further comprising:

in response to determining, based on a result of the EPWR performed on the one or more invalid data regions of the primary update block, that the one or more invalid data regions include an uncorrectable error, incrementing a grown bad block (GBB) count based on a detected number of uncorrectable errors in the primary update block,

determining whether the GBB count exceeds a threshold, and

in response to determining that the GBB count exceeds the threshold, retiring the primary update block from metablock formation.

17 . The method of claim 15 , the second targeted EPWR operation on the primary update block is performed as a background process.

18 . The method of claim 17 , wherein the background process is a garbage collection process.

19 . The method of claim 12 , further comprising:

generating a bitmap for the primary update block, the bitmap including, for each data region of the predetermined size in the primary update block, one bit selectively indicating a validity or invalidity of the data region,

wherein the one or more valid data regions of the primary update block are identified based on the bitmap.

20 . A data storage device, comprising:

memory means; and

processing means communicatively connected to the memory means, the processing means configured to:

receive a write command from a host device, the write command including host data to be written to the memory means,

service the write command by controlling the memory means to write the host data to a primary update block of the memory means and a secondary update block of the memory means,

perform a first targeted enhanced post-write read (EPWR) operation on the primary update block by:

identifying one or more valid data regions of the primary update block,

selectively performing EPWR on the one or more valid data regions of the primary update block, and

in response to determining, based on a result of the EPWR performed on the one or more valid data regions, that the one or more valid data regions do not include an uncorrectable error, releasing the secondary update block,

wherein each valid data region of the one or more valid data regions is a data region of a predetermined size in the primary update block that includes at least one fragment of valid data.

Assignments (4)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 (SUPPLEMENTAL) Recorded Feb 3, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 070088/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2024
From: KUMAR N, PRADEEP; SINGLA, LOVISH
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069000/0374 →
References Cited (7)
US 20160092128A1 · Jain · 2016 [cited by examiner]
US 20160092302A1 · Agarwal · 2016 [cited by examiner]
US 20160094339A1 · Agarwal · 2016 [cited by examiner]
US 20160162357A1 · Desireddi · 2016 [cited by examiner]
US 20170031612A1 · Ravimohan · 2017 [cited by examiner]
US 20220171539A1 · Ravimohan · 2022 [cited by examiner]
US 20240411688A1 · Choudhary · 2024 [cited by examiner]
Cited By (1)
US 12,710,881