IP Library Granted Patent US 11,989,458
Granted Patent B2
US 11,989,458 · App. 17/942,452 · Granted May 21, 2024

Splitting sequential read commands

Inventors: Dattatreya B Nayak (Udupi, IN); Ramanathan Muthiah (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/0604G06F3/0634G06F3/0679
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 11,989,458
App. No.
17/942,452
Granted
May 21, 2024
Kind
B2
Abstract

Technology is disclosed herein for handling of mixed random read and sequential read command sequences. Plane read commands are formed from one or more sequential read commands. A sequential read command may be split into multiple plane read commands at plane boundaries. The plane read commands are submitted to the respective planes as asynchronous independent plane read commands. Random read commands may be submitted to the planes as asynchronous independent plane read (AIPR) commands on par with the split sequential read commands. Therefore, AIPR may be used for both sequential read commands and random read commands. Submitting a split sequential read command to one or more planes while one or more other planes are performing a random read command can significantly improve performance.

Claims (60)

1. An apparatus comprising:

a communication interface configured to communicate with a host; and

one or more control circuits in communication with the communication interface and configured to connect to one or more memory packages, each memory package having a plurality of planes of non-volatile memory cells, wherein the one or more control circuits are configured to:

access sequential read commands;

form a plurality of plane read commands from one or more of the sequential read commands, wherein each formed plane read command of the plurality of formed plane read commands is for data stored in a single plane of the plurality of planes; and

submit the plurality of formed plane read commands as asynchronous independent plane read (AIPR) commands to respective planes of the plurality of planes when the respective planes are free.

2. The apparatus of claim 1 , wherein:

the sequential read commands are received over the communication interface from the host; and

the one or more control circuits are further configured to:

receive random read commands over the communication interface from the host; and

submit one or more of the random read commands as asynchronous independent plane read commands to one or more planes on par with the submission of one or more plane read commands of the plurality of formed plane read commands.

3. The apparatus of claim 2 , wherein the one or more control circuits are further configured to:

determine whether a ratio with respect to the sequential read commands received over the communication interface to the random read commands received over the communication interface is below a threshold;

form the plurality of plane read commands from the one more of the sequential read commands responsive to a determination that a ratio of the sequential read commands to the random read commands is below the threshold; and

submit at least one of the sequential read commands received over the communication interface from the host to one or more of the memory dies as a multi-plane parallel read responsive to a determination that the ratio of the sequential read commands to the random read commands exceeds the threshold.

4. The apparatus of claim 3 , wherein the ratio is based on a first number of the sequential read commands to a second number of the random read commands.

5. The apparatus of claim 2 , wherein:

the random read commands are each for data stored in a single plane of the plurality of planes; and

each sequential read command is part of a sequential read command stream of one or more read commands.

6. The apparatus of claim 1 , wherein the one or more control circuits are configured to form the sequential read commands to access control data stored in the one or more memory packages.

7. The apparatus of claim 1 , wherein the one or more control circuits are further configured to:

determine whether a target plane is available to accept a new plane read command;

wait for a first target plane to become available prior to submitting a first plane read command of the plurality of formed plane read commands responsive to a determination that the first target plane is not presently available to accept a new plane read command; and

submit the first plane read command to the first target plane responsive to a determination that the first target plane is presently available to accept a new plane read command.

8. The apparatus of claim 7 , wherein the one or more control circuits are further configured to:

apply aging techniques to avoid starvation of plane read commands responsive to a determination that the first target plane is not presently available to accept a new plane read command.

9. The apparatus of claim 1 , wherein the one or more control circuits are further configured to:

translate logical addresses specified in the sequential read commands to physical addresses, the logical addresses being in an address space of the host, the physical addresses being in a physical address space of the one or more memory dies;

determine whether read commands from the host are sequential or random based on the logical addresses; and

form the plurality of plane read commands from the one more of the sequential read commands based on plane boundaries defined by the physical addresses.

10. The apparatus of claim 1 , wherein:

the one or more memory packages each comprise a plurality of memory dies; and

each memory die comprises multiple planes of the plurality of planes.

11. The apparatus of claim 1 , wherein:

the one or more memory packages each comprise a plurality of integrated memory assemblies; and

each integrated memory assembly comprises at least one control die connected to one or more memory die, each memory die comprises multiple planes of the plurality of planes.

12. A method for reading data in a non-volatile storage system, the method comprising:

receiving a mix of random read commands and sequential read commands from a host, wherein the random read commands are each for data stored in a single plane in the non-volatile storage system, wherein the sequential read commands include read commands that are part of sequential read command streams that each span multiple planes in the non-volatile storage system;

breaking the sequential read command streams at plane boundaries into a plurality of plane read commands in which each plane read command is for data within a single plane; and

submitting a first set of plane read commands of the plurality of the plane read commands and a second set of random read commands of the random read commands received from the host as asynchronous independent plane read commands to respective planes in the non-volatile storage system.

13. The method of claim 12 , further comprising:

determining whether a present ratio pertaining to the sequential read commands to the random read commands from the host is below a threshold; and

submitting sequential read commands as multi-plane parallel read commands responsive to the ratio not exceeding the threshold, wherein breaking the sequential read command streams at plane boundaries into a plurality of plane read commands and submitting the first set of plane read commands of the plurality of the plane read commands to respective planes as asynchronous independent plane read commands is performed responsive to the ratio being below the threshold.

14. The method of claim 12 , further comprising:

executing a first random read command of the second set of random read commands on a first plane while executing a first plane read command of the first set of plane read commands on a second plane.

15. A non-volatile storage system comprising:

a plurality of planes of NAND memory cells;

a communication interface configured to receive read commands from a host, wherein the read commands include random read commands and sequential read commands, wherein the random read commands are each for data stored in a single plane, wherein the sequential read commands include read commands that are part of a plurality of sequential read command streams that each are for data stored in more than one plane of the plurality of planes;

means for submitting first asynchronous independent plane read (AIPR) commands formed from a first sequential read command stream of the plurality of sequential read command streams on par with second AIPR commands formed from the random read commands to respective planes responsive to a determination to submit the first sequential read command stream as asynchronous independent plane read commands; and

means for submitting a multi-plane parallel read command formed from a second sequential read command stream of the plurality of sequential read command streams in an operation separate from submitting the random read commands as AIPR commands responsive to a determination to submit the second sequential read command stream as the multi-plane parallel read command.

16. The non-volatile storage system of claim 15 , wherein the means for submitting the first AIPR commands on par with the second AIPR commands is configured to:

form a plurality of plane read commands from the first sequential read command stream, wherein each of the plane read commands is for data stored in a single plane.

17. The non-volatile storage system of claim 16 , wherein the means for submitting the first AIPR commands formed on par with the second AIPR commands is configured to:

submit a first plane read command to a first plane while a first random read command is executing in a second plane.

18. The non-volatile storage system of claim 16 , wherein the means for submitting the first AIPR commands on par with the second AIPR commands is configured to:

submit a first random read command to a first plane while a first plane read command is executing in a second plane.

19. The non-volatile storage system of claim 15 , further comprising means for determining whether to submit the sequential read commands to respective planes as asynchronous independent plane read commands or as multi-plane parallel read commands based on whether a ratio with respect to the sequential read commands received over the communication interface to the random read commands received over the communication interface is below a threshold.

20. The non-volatile storage system of claim 15 , wherein the means for submitting the first AIPR commands formed on par with the second AIPR commands is configured to:

operate in a first mode in which only random read commands are submitted as the asynchronous independent plane read commands; and

operate in a second mode in which sequential read commands are submitted as multi-plane parallel read commands.

Assignments (8)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2022
From: NAYAK, DATTATREYA B; MUTHIAH, RAMANATHAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 061061/0633 →
Continuity (1)
Related Publication 20240086107A1 · Mar 14, 2024