US 11,789,612 B2
Plane programming scheme for non-volatile memory with large block sizes
Karin Inbar, Ramat Hasharon (IL); Sahil Sharma, San Jose, CA (US); and Grishma Shah, Milpitas, CA (US)
Assigned to SanDisk Technologies LLC, Addison, TX (US)
Filed by SanDisk Technologies LLC, Addison, TX (US)
Filed on Jun. 16, 2020, as Appl. No. 16/903,196.
Prior Publication US 2021/0389879 A1, Dec. 16, 2021
Int. Cl. G06F 3/06 (2006.01)
CPC G06F 3/0611 (2013.01) [G06F 3/064 (2013.01); G06F 3/0656 (2013.01); G06F 3/0679 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A non-volatile storage apparatus, comprising:
a non-volatile memory controller configured to receive host data from a host system and transfer the host data to a plurality of planes of non-volatile memory cells on one or more memory die, where the host data have a logical address assigned by the host system having a logical address space divided into zones containing a set amount of data, including a first plurality of zones corresponding to a first range of logical addresses and a second plurality of zones corresponding to a second, distinct range of logical addresses, and where the planes comprise a first subset of a plurality of the planes and a second subset of a plurality of the planes, the non-volatile memory controller comprising:
a first write queue;
a second write queue;
a page buffer; and
one or more control circuits configured to:
determine, for each of a plurality of received zones of host data, whether the zone belongs to the first range of logical addresses or to the second range of logical addresses;
accumulate zones of host data belonging to the first range of logical addresses in the first write queue;
accumulate zones of host data belonging to the second range of logical addresses in the second write queue;
assign corresponding physical addresses to each of the accumulated zones of host data, the zones accumulated in the first write queue being assigned physical addresses in the first, but not the second, subset of planes, and the zones accumulated in the second write queue being assigned physical addresses in the second, but not the first, subset of planes;
assemble the accumulated zones into one or more pages of write data, each page including host data assigned physical addresses in the first subset of planes and host data assigned physical addresses in the second subset of planes;
store the assembled one or more pages in the page buffer; and
transmit one or more of the assembled pages from the page buffer, along with the corresponding physical addresses, to the memory planes for programming each page concurrent into the first subset of planes and second subset of planes at the corresponding assigned physical addresses.