Cache flushing is effected for a flash memory by copying, to a block of
the memory, first and second portions of cached data, and servicing a
host access in-between copying the first portion and the second portion.
Either both portions are selected before the copying, or erasing the
block is forbidden until after the copying, or a portion of the block
left unwritten by the first copying remains unwritten until after the
host access is serviced.