Patent ID: 7804726

Claim:
A multi-bit programming apparatus for performing a plurality of page programming operations, wherein a first of the page programming operations changes a threshold voltage of the at least one multi-bit cell, the apparatus comprising: a page buffer configured to store first data of the first of a plurality of page programming operations, the first data including at least one bit; an input control unit configured to determine whether to invert the first data based on a number of bits having a first value, a number of bits having a second value in the first data and an amount of change in the threshold voltage of the at least one multi-bit cell while performing the first page programming operation, invert the first data to generate second data if the number of bits having the first value is greater than the number of bits having the second value, and store the second data in the page buffer; and a page programming unit configured to program the second data stored in the page buffer in at least one multi-bit cell.