IP Library › Granted Patent US 12,260,927
Granted Patent B2
US 12,260,927 · App. 17/862,006 · Granted Mar 25, 2025

Die-based high and low priority error queues

Inventors: Gyan Prakash (San Jose, CA); Vijay Sankar (San Jose, CA)
Assignee: KIOXIA CORPORATION
G11C29/42G06F9/4881G11C29/1201G11C29/26G11C29/44
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,260,927
App. No.
17/862,006
Granted
Mar 25, 2025
Kind
B2
Abstract

A processor coupled to a NAND memory device comprising an n by m array of dies having n channels performs error recovery message scheduling and read error recovery on the dies by receiving indications of read errors responsive to attempted execution of a read command on a destination die and creates an error recovery message or instruction in response to the indication. The processor determines the destination die of the error recovery message and sends the error recovery message to a die queue based on the determined destination die. The n×m die queues can each be further divided into p priority queues, and error recovery messages are sent to the appropriate die priority queue based on a priority associated with the error recovery message. The processor fetches error recovery messages from a head of each die priority queue and performs read error recovery at the destination die.

Claims (55)

1. A method of scheduling error recovery instructions by a processor communicatively coupled to a NAND memory device comprising an n×m array of NAND memory dies having n channels, each channel of the n channels being communicatively coupled to m NAND memory dies to form n×m die queues each comprising p die priority queues, each NAND memory die of the n×m array is assigned to one of at least two groups, and the die priority queues are grouped to correspond to the at least two groups to which the n×m array of NAND memory dies are assigned, the method comprising:

receiving an indication of a read error responsive to an attempted execution of a read command on a destination die of the n×m array of NAND memory dies;

creating an error recovery instruction in response to the indication of the read error;

determining the destination die of the n×m array of NAND memory dies to which the read command is directed and a priority of the error recovery instruction; and

sending the error recovery instruction to a die priority queue corresponding to the determined destination die and the priority of the error recovery instruction.

2. The method of claim 1 , wherein a first group of the at least two groups comprising one of Input Output Determinism (IOD) sets or Input Output (IO) streams, the method further comprising:

fetching the error recovery instruction from a die priority queue in the first group of the at least two groups based on a selection method assigned to the first group; and

performing read error recovery at the destination die by applying a read error recovery mechanism associated with the first group.

3. The method of claim 2 , further comprising:

assigning a first priority to a first subset of the n×m array of NAND memory dies; or

assigning a second priority to a second subset of the n×m array of NAND memory dies.

4. The method of claim 3 , further comprising:

determining whether the destination die is part of the first subset or the second subset; and

applying a scheduling mechanism from a predetermined number of scheduling mechanisms based on the determination.

5. The method of claim 1 , further comprising:

determining the priority associated with the error recovery instruction; and

sending the error recovery instruction to the die priority queue with the determined priority.

6. The method of claim 5 , wherein determining the priority associated with the error recovery instruction further comprises determining the error recovery instruction is one of a low priority message and a high priority message.

7. The method of claim 6 , wherein determining the priority includes determining a type of failed read command associated with the error recovery instruction.

8. The method of claim 1 , further comprising:

fetching the error recovery instruction from the die priority queue based on a selection method; and

performing read error recovery on the destination die.

9. The method of claim 8 , wherein the selection method comprises a round-robin method when the error recovery instruction is at a head of the die priority queue.

10. The method of claim 8 , wherein performing read error recovery on the destination die further comprises:

processing the fetched error recovery instruction from a first die priority queue, wherein the first die priority queue corresponds to a first priority of the p priorities of a first die of the m dies and a first channel of the n channels; and

transmitting a first read command to the destination die over the first channel of the n channels to the first die of the m dies.

11. The method of claim 8 , further comprising performing a second read error recovery on a second destination die by:

processing a second error recovery instruction from a second die priority queue, wherein the second die priority queue corresponds to a second priority of the p priorities of the first of the m dies and a second channel of the n channels; and

transmitting a second read command to the second destination die over a second channel of the n channels, the second read error recovery performed in parallel with the read error recovery.

12. A system for scheduling error recovery instructions at a processor, the system comprising:

a NAND memory device comprising an n×m array of NAND memory dies having n channels, wherein each channel of the n channels is communicatively coupled to m NAND memory dies; and

a processor communicatively coupled to the NAND memory device, the processor comprising:

logic configured to process read commands requesting data from the NAND memory device and error recovery instructions for execution on the NAND memory device; and

a die queue for each NAND memory die of the n×m array, each die queue comprising p die priority queues, each NAND memory die of the n×m array is assigned to one of at least two groups, and the die priority queues are grouped to correspond to the at least two groups to which the n×m array of NAND memory dies are assigned;

the processor configured to:

receive an indication of a read error responsive to an attempted execution of a read command on a destination die of the n×m array of NAND memory dies;

create an error recovery instruction in response to the indication of the error;

determine the destination die of the n×m array of NAND memory dies to which the error recovery instruction is directed and a priority of the error recovery instruction; and

send the error recovery instruction to a die queue corresponding to the determined destination die and the priority of the error recovery instruction.

13. The system of claim 12 , wherein a first group of the at least two groups comprises one of Input Output Determinism (IOD) sets or Input Output (IO) streams, and the processor is further configured to:

fetch the error recovery message from a die priority queue in a first group of the at least two groups based on a selection method assigned to the first group; and

perform read error recovery at the destination die by applying a read error recovery mechanism associated with the first group.

14. The system of claim 12 , wherein the processor is further configured to:

determine the priority associated with the error recovery instruction; and

send the error recovery instruction to a die priority queue within the determined priority.

15. The system of claim 14 , wherein the processor is further configured to determine the priority associated with the error recovery instruction by determining the error recovery instruction is one of a low priority message and a high priority message.

16. The system of claim 15 , wherein the processor is further configured to determine the priority by determining a type of failed read command associated with the error recovery instruction.

17. The system of claim 14 , wherein the processor is further configured to determine the priority associated with the error recovery instruction by determining a priority assignment of the destination die.

18. The system of claim 17 , wherein the processor is further configured to:

assign a first priority to a first subset of the n×m array of NAND memory dies or assign a second priority to a second subset of the n×m array of NAND memory dies;

determine whether the destination die is part of the first subset or the second subset; and

apply a scheduling mechanism from a predetermined number of scheduling mechanisms based on the determination.

19. The system of claim 14 , wherein the processor is further configured to:

fetch the error recovery instruction from the die priority queue based on a selection method when the error recovery instruction is at a head of the die priority queue; and

perform read error recovery on the destination die.

Continuity (2)
Continuation 17022848 · Sep 16, 2020
Related Publication 20230030672A1 · Feb 2, 2023
References Cited (13)
US 8707104B1 · Jean · 2014 [cited by applicant]
US 9432298B1 · Smith · 2016 [cited by examiner]
US 11194643B1 · Liang · 2021 [cited by examiner]
US 11417410B2 · Prakash · 2022 [cited by examiner]
US 20130124932A1 · Schuh et al. · 2013 [cited by applicant]
US 20160103732A1 · Tuers · 2016 [cited by examiner]
US 20160103733A1 · Camp · 2016 [cited by examiner]
US 20170168892A1 · Roh · 2017 [cited by examiner]
US 20180321844A1 · Benisty · 2018 [cited by examiner]
US 20190339902A1 · Yanes · 2019 [cited by examiner]
US 20200310911A1 · Fu · 2020 [cited by examiner]
US 20210026713A1 · Puttaswamy · 2021 [cited by examiner]
US 20220091984A1 · Das et al. · 2022 [cited by applicant]