Patent ID: 7395404

Claim:
A method of storing addressable data packets in a non-volatile memory array that is connected to a host, the memory array having units of erase of a block, where each block of the memory array holds one logical block of data, each logical block formed of addressable data packets extending sequentially from a first addressable data packet to a last addressable data packet, data allocated by the host in units of a cluster, each cluster including multiple addressable data packets, comprising: determining an offset between a logical block boundary and a cluster boundary for data received from a host for storage in a predetermined block; selecting physical locations in the predetermined block for writing a plurality of clusters of the received data according to the offset, such that an individual cluster boundary is located at a predetermined page boundary; and writing a first partial cluster that includes the first addressable data packet of a logical block of the received data and a last partial cluster that includes the last addressable data packet of the logical block of the received data to a page of the predetermined block.