In a memory that is programmable page by page and each page having
multiple sectors that are once-programmable, even if successive writes
are sequential, the data recorded to an update block may be fragmented
and non-sequential. Instead of recording update data to an update block,
the data is being recorded in at least two interleaving streams. When a
full page of data is available, it is recorded to the update block.
Otherwise, it is temporarily recorded to the scratch pad block until a
full page of data becomes available to be transferred to the update
block. Preferably, a pipeline operation allows the recording to the
update block to be set up as soon as the host write command indicates a
full page could be written. If the actual write data is incomplete due to
interruptions, the setup will be canceled and recording is made to the
scratch pad block instead.