IP Library › Granted Patent US 12,148,493
Granted Patent B2
US 12,148,493 · App. 17/981,298 · Granted Nov 19, 2024

Memory controller with read error handling

Inventors: Boxuan Cheng (Wuhan, CN); Wei Tao (Wuhan, CN); Weizhen Kong (Wuhan, CN); Jian Cao (Wuhan, CN)
Assignee: YANGTZE MEMORY TECHNOLOGIES CO., LTD.
G11C29/42H03M13/1108
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,148,493
App. No.
17/981,298
Granted
Nov 19, 2024
Kind
B2
Abstract

A method for handling a read error on a block of a memory device is disclosed. In response to a read failure indicating that at least one error handling mechanism has handled the read error on the block and fails to read data stored in the block, a memory test is trigged to be performed on the block. The memory test is configured to determine whether the block malfunctions.

Claims (74)

1. A method for handling a read error on a block of a memory device, comprising:

in response to a read failure indicating that each of at least one error handling mechanism, applied after the read error on the block, fails to read data stored in the block;

including the block in a test queue configured for the block waiting to be tested by a memory test;

marking the block with the read error as a temporary bad block; and

triggering to perform the memory test on the block, the memory test being configured to determine whether the block with the read error malfunctions, and the memory test being performed when no task having a priority higher than the memory test to determine whether the block in the test queue is a bad block.

2. The method of claim 1 , wherein the memory test comprises a set of test procedures configured to apply a plurality of read voltages to evaluate whether the block is a bad block.

3. The method of claim 1 , wherein performing the memory test comprises:

applying a plurality of read voltages to a word line coupled to the block; and

detecting, at least in part, an output current of each memory cell in the block based on the plurality of read voltages to determine whether there is any abnormality occurring to the output current, thereby determining whether the block malfunctions.

4. The method of claim 1 , further comprising:

in response to determining that the block passes the memory test:

releasing the block from a list of temporary bad blocks, the temporary bad blocks being configured as inaccessible, at least, before performing the memory test on the block; and

pushing the block to a target block list of a garbage collection to identify the block as a candidate block for recycling.

5. The method of claim 1 , further comprising:

in response to determining that the block fails the memory test:

updating a mapping table to include the block that fails the memory test to identify the block as a bad block.

6. The method of claim 1 , further comprising:

before performing the memory test on the block:

pushing the block to the test queue, the test queue being configured to include a set of blocks of the memory device waiting for the memory test; and

pushing the block to a list of temporary bad blocks, the temporary bad blocks being configured as inaccessible, at least, before performing the memory test on the block.

7. The method of claim 6 , further comprising:

in response to determining that there is a task to be fulfilled with higher priority than the memory test:

performing the task before performing the memory test on the block.

8. The method of claim 1 , further comprising:

applying the at least one error handling mechanism to handle the read error on the block; and

in response to the at least one error handling mechanism failing to read the data stored in the block, generating notification data indicative of the read failure of the at least one error handling mechanism on reading the data stored in the block.

9. The method of claim 1 , wherein the read failure of the at least one error handling mechanism comprises one of:

a first read failure indicating that a first error handling mechanism failed on handling the read error on the block, the first error handling mechanism being configured to use a default read voltage to read the data stored in the block and a low density parity check (LDPC) hard decoding strategy for data decoding;

a second read failure indicating that the first error handling mechanism and a second error handling mechanism failed on handling the read error on the block, the second error handling mechanism configured to use a set of read voltages in a read-retry table to read the data stored in the block and the LDPC hard decoding strategy for the data decoding;

a third read failure indicating that the first error handling mechanism, the second error handling mechanism, and a third error handling mechanism failed on handling the read error on the block, the third error handling mechanism being configured to use a set of shifted read voltages to read the data stored in the block and an LDPC soft decoding strategy for the data decoding; or

a fourth read failure indicating that the first error handling mechanism, the second error handling mechanism, the third error handling mechanism, and a fourth error handling mechanism failed on handling the read error on the block, the fourth error handling mechanism being configured to use a redundant array of independent disks (RAID) data restoration strategy to handle the read error on the block.

10. A system, comprising:

a memory device comprising an array of memory cells that comprises a plurality of blocks configured for storing data; and

a controller coupled to the memory device and configured to:

in response to a read failure indicating that each of at least one error handling mechanism, applied after a read error on one block of the plurality of blocks, fails to read the data stored in the block:

include the block in a test queue configured for the block waiting to be tested by a memory test;

mark the block with the read error as a temporary bad block; and

trigger to perform the memory test on the block, the memory test being configured to determine whether the block with the read error malfunctions, and the memory test being performed when no task having a priority higher than the memory test to determine whether the block in the test queue is a bad block.

11. The system of claim 10 , wherein the memory test comprises a set of test procedures configured to apply a plurality of read voltages to evaluate whether the block is a bad block.

12. The system of claim 10 , wherein the controller is further configured to:

apply a plurality of read voltages to a word line coupled to the block; and

control to detect, at least in part, an output current of each memory cell in the block based on the plurality of read voltages to determine whether there is any abnormality occurring to the output current, thereby determining whether the block malfunctions.

13. The system of claim 10 , wherein the controller is further configured to:

in response to determining that the block passes the memory test:

release the block from a list of temporary bad blocks, the temporary bad blocks being configured as inaccessible, at least, before performing the memory test on the block; and

push the block to a target block list of a garbage collection to identify the block as a candidate block for recycling.

14. The system of claim 10 , wherein the controller is further configured to:

in response to determining that the block fails the memory test:

update a mapping table to include the block that fails the memory test to identify the block as a bad block.

15. The system of claim 10 , wherein:

the controller comprises the test queue configured to include a set of blocks of the memory device waiting for the memory test; and

before performing the memory test on the block, the controller is further configured to:

push the block to the test queue; and

push the block to a list of temporary bad blocks, the temporary bad blocks being configured as inaccessible, at least, before performing the memory test on the block.

16. The system of claim 15 , wherein in response to determining that there is a task to be fulfilled with higher priority than the memory test, the controller is further configured to:

perform the task before performing the memory test on the block.

17. The system of claim 10 , wherein the controller is configured to:

apply the at least one error handling mechanism to handle the read error on the block; and

in response to the at least one error handling mechanism failing to read the data stored in the block, generate notification data indicative of the read failure of the at least one error handling mechanism on reading the data stored in the block.

18. The system of claim 10 , wherein the read failure of the at least one error handling mechanism comprises one of:

a first read failure indicating that a first error handling mechanism failed on handling the read error on the block, the first error handling mechanism being configured to use a default read voltage to read the data stored in the block and a low density parity check (LDPC) hard decoding strategy for data decoding;

a second read failure indicating that the first error handling mechanism and a second error handling mechanism failed on handling the read error on the block, the second error handling mechanism configured to use a set of read voltages in a read-retry table to read the data stored in the block and the LDPC hard decoding strategy for the data decoding;

a third read failure indicating that the first error handling mechanism, the second error handling mechanism, and a third error handling mechanism failed on handling the read error on the block, the third error handling mechanism being configured to use a set of shifted read voltages to read the data stored in the block and an LDPC soft decoding strategy for the data decoding; or

a fourth read failure indicating that the first error handling mechanism, the second error handling mechanism, the third error handling mechanism, and a fourth error handling mechanism failed on handling the read error on the block, the fourth error handling mechanism being configured to use a redundant array of independent disks (RAID) data restoration strategy to handle the read error on the block.

19. The system of claim 10 , further comprising:

a host configured to send a read request, for reading the data stored in the block, to the memory device through the controller,

wherein the controller is further configured to:

in response to the at least one error handling mechanism reading the data stored in the block successfully, return the data to the host; and

in response to the read failure indicating that at least one error handling mechanism failing to read the data stored in the block, report a data loss to the host.

20. A non-transitory storage medium, coupled to a processor and storing instructions that, when executed by the processor, cause the processor to:

in response to a read failure indicating that each of at least one error handling mechanism, applied after a read error on one block of a memory device, failed to read data stored in the block:

include the block in a test queue configured for the block waiting to be tested by a memory test;

mark the block with the read error as a block; and

trigger to perform the memory test on the block, the memory test being configured to determine whether the block with the read error malfunctions, and the memory test being performed when no task having a priority higher than the memory test to determine whether the block in the test queue is a bad block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2022
From: CHENG, BOXUAN; TAO, WEI; KONG, WEIZHEN; CAO, JIAN
To: YANGTZE MEMORY TECHNOLOGIES CO., LTD.
Reel/Frame 061666/0927 →
Continuity (3)
Continuation 17352246 · Jun 18, 2021
Continuation PCTCN2021083886 · Mar 30, 2021
Related Publication 20230055737A1 · Feb 23, 2023