Early read operation for storage devices with independent planes and plane groups
A storage device includes a storage array with multiple planes organized as plane groups, where the planes of a plane group receive and process commands in parallel. The storage device includes a storage controller that receives a command from a host controller. In response to receipt of the command the storage controller provides ready information for all planes to the host controller. The multiple planes can optionally have independent multiplane read operation (IMPRO). Each plane group can have a first plane and a second plane, and the storage controller can optionally read data from the first plane of a plane group in response to a virtual ready signal for the first plane, before the second plane of the plane group is ready.
1 . A storage device, comprising:
a storage die having a storage array with multiple planes organized as multiple plane groups, planes of a selected plane group of the multiple plane groups to process in parallel a common command directed to the selected plane group, the selected plane group having a first plane and a second plane; and
a storage controller to access the selected plane group that is processing the common command, to:
read data from the first plane of the selected plane group based on a current read level of a plurality of read levels;
after reading data from the first plane based on the current read level, generate a first virtual ready signal for the first plane before a second virtual ready signal for the second plane is generated;
in response to the first virtual ready signal for the first plane, provide a copy of the data read from the first plane to a host device coupled to the storage device, before the second plane of the selected plane group is read and ready based on a subsequent read level of the plurality of read levels; and
based on the subsequent read level of the plurality of read levels, read additional data from the second plane, generate the second virtual ready signal, and provide a copy of the additional data to the host device.
2 . The storage device of claim 1 , wherein the first plane and the second plane are to process a read operation, wherein the first plane is to signal the first virtual ready signal after completion of the read operation with fewer read levels than the second plane.
3 . The storage device of claim 2 , wherein the second plane is to continue the read operation after the first plane completes the read operation.
4 . The storage device of claim 1 , wherein the multiple planes have independent multiplane read operation (IMPRO).
5 . The storage device of claim 1 , wherein the storage array has two planes per plane group.
6 . The storage device of claim 1 , further comprising:
a buffer to store the read data from the first plane prior to providing the read data from the storage device to the host device.
7 . The storage device of claim 1 , wherein at least one plane group includes planes of different page types.
8 . The storage device of claim 7 , wherein the different page types include a plane of quad level cell (QLC) and a plane of QLC in single level cell (SLC) mode.
9 . A storage controller comprising:
input/output (I/O) hardware to couple to a storage die having a storage array with multiple planes organized as multiple plane groups, planes of a selected plane group of the multiple plane groups to process in parallel a common command directed to the selected plane group, the selected plane group having a first plane and a second plane; and
control logic to access the selected plane group that is processing the common command, to:
read data from the first plane of the selected plane group based on a current read level of a plurality of read levels;
after reading data from the first plane based on the current read level, generate a first virtual ready signal for the first plane before a second virtual ready signal for the second plane is generated;
in response to the first virtual ready signal for the first plane, provide a copy of the data read from the first plane to a host device coupled to the storage controller, before the second plane of the selected plane group is read and ready based on a subsequent read level of the plurality of read levels; and
based on the subsequent read level of the plurality of read levels, read additional data from the second plane, generate the second virtual ready signal, and provide a copy of the additional data to the host device.
10 . The storage controller of claim 9 , wherein the first plane and the second plane are to process a read operation, wherein the first plane is to signal the first virtual ready signal after completion of the read operation with fewer read levels than the second plane.
11 . The storage controller of claim 10 , wherein the second plane is to continue the read operation after the first plane completes the read operation.
12 . The storage controller of claim 9 , wherein the multiple planes have independent multiplane read operation (IMPRO).
13 . The storage controller of claim 9 , wherein the storage array has two planes per plane group.
14 . The storage controller of claim 9 , wherein the storage die includes a buffer to store the read data from the first plane prior to providing the read data from the storage die to the host device.
15 . The storage controller of claim 9 , wherein at least one plane group includes planes of different page types.
16 . The storage controller of claim 15 , wherein the different page types include a plane of quad level cell (QLC) and a plane of QLC in single level cell (SLC) mode.
17 . A method for managing a storage device comprising:
receiving a command from a host device to a storage die having a storage array with multiple planes organized as multiple plane groups, planes of a selected plane group of the multiple plane groups to process in parallel a common command directed to the selected plane group, each plane group having a first plane and a second plane, the command to access the selected plane group that is processing the common command;
reading data from the first plane of the selected plane group based on a current read level of a plurality of read levels;
after reading data from the first plane based on the current read level, generating a first virtual ready signal for the first plane before a second virtual ready signal for the second plane is generated;
in response to the first virtual ready signal for the first plane, providing a copy of the data read from the first plane to the host device coupled to the storage device, before the second plane of the selected plane group is read and ready based on a subsequent read level of the plurality of read levels; and
based on the subsequent read level of the plurality of read levels, reading additional data from the second plane, generating the second virtual ready signal, and providing a copy of the additional data to the host device.
18 . The method of claim 17 , wherein the first plane and the second plane are to process a read operation, wherein the first plane is to signal the first virtual ready signal after completion of the read operation with fewer read levels than the second plane.
19 . The method of claim 18 , wherein the second plane is to continue the read operation after the first plane completes the read operation.
20 . The method of claim 17 , further comprising:
storing the read data from the first plane prior to providing the read data from the storage die to the host device.