Patent ID: 8782325

Claim:
A device comprising: an input configured to connect with a data processing apparatus; an output configured to connect with a non-volatile memory; and control logic coupled with the input and the output, and configured to modify placement of data written to the non-volatile memory from a first location to a second location of a plurality of locations in the non-volatile memory based on a data type of the data, wherein the placement moves through all locations of the plurality of locations to even out wear, and the control logic is configured to modify the placement of the data from the first location to the second location by modifying an alignment of the data from a first start position of a page of the non-volatile memory to a second, different start position of the same page of the non-volatile memory, and identify the second, different start position of the page by calculating the second, different start position of the page based on (i) a first remainder of a program/erase count divided by a size of the page in relation to a size of the data and (ii) a second remainder of a page index divided by the size of the page in relation to the size of the data.