Patent ID: 8180994

Claim:
A method for operating a non-volatile storage system, comprising: receiving, from a host, a first logical page of data carried in a recording unit of page data; buffering the received first logical page of data in a buffer; transferring the first logical page of data from the buffer to a memory array; after receiving and buffering the first logical page of data, receiving, from the host, a second logical page of data carried in the recording unit of page data, and buffering the second logical page of data in the buffer; programming the memory array using the first logical page of data which is transferred from the buffer, the programming is concurrent with the buffering of the received second logical page of data in the buffer; transferring the second logical page of data from the buffer to the memory array; and programming the memory array using the second logical page of data which is transferred from the buffer, the first logical page of data takes longer to program than the second logical page of data, wherein: the memory array comprises storage elements in successive word lines WLx, WLx+1, WLx+2 and WLx+3, and stores lower, middle and upper pages of data; and the first logical page of data is a middle page of data for WLx+2, and the second logical page of data is a lower page of data for WLx+3; and responsive to completion of the programming of the recording unit of page data, the method further comprises, receiving, from the host, a next recording unit of page data, the next recording unit of page data comprises an upper page of data for WLx followed by a middle page of data for WLx+3.