Patent ID: 7242623

Claim:
A programming element for programming data into a plurality of non-volatile memory cells of a non-volatile memory cell array, the data being transferred to the non-volatile memory cell array in a data word comprising a plurality of data items, the programming element comprising: a detection element for detecting at least a first data word and a second data word that are to be transferred to the non-volatile memory cell array; a determination element for determining the number of data items in the first data word and the second data word that need a change of the state of a respective non-volatile memory cell; a comparator element for comparing the determined number of data items with a maximum number of programmable data items using one programming pulse; and a data word merge control element for merging the first data word with the second data word into a merged data word to be programmed into the non-volatile memory cell array if the determined number is less than or equal to the maximum number, wherein the merged data word is to be programmed into the non-volatile memory cells together using the same at least one programming pulse.